举个简单例子:
type
  TMyClass = class
    A: Integer;//第3行这里A: Integer;写在这儿是什么意思?它属于哪一类呀?
    private
      B: Integer;
      FD: Integer;
      procedure SetD(const Value: Integer);
    protected
      C: Integer;
    public
      D: Integer read FD write SetD;//这里搞这么麻烦有什么用意呢?直接写成D: Integer;不行吗?
    published
      E: Integer;
  end;
  
procedure TMyClass.SetD(const Value: Integer);  
begin
  FD := Value;
end;
还有上面的private, protected, public, published有什么区别?

解决方案 »

  1.   

    看书,看书,没有改变编译开关时A属于public类
    D是一种编程习惯吧,一般用于属性
    private声明的只能供类内的方法使用
    protected其子类可使用
    public无限制,供对象使用,当然的类内方法也可使用
    published为对象编辑器的可视化编程使用
      

  2.   

    最上面的,在默认的情况下就是Public的,这是Delphi的通用习惯_____________________
    http://lysoft.7u7.net
      

  3.   

    D这种方式确实和你说的那种定义方法是相似的,但在这里保证了类的封装性,就是说你要修改FD: Integer;直接来是不行的,只能通过SetD.
    虽然这里
    procedure TMyClass.SetD(const Value: Integer);  
    begin
      FD := Value;
    end;
    是简单的实现,但是如果你改变以下你就能看到不同了 
    procedure TMyClass.SetD(const Value: Integer);  
    begin
      if Value>10 then
      FD := 1
      else FD:=0;
    end;
      

  4.   

    D: Integer read FD write SetD;//这里搞这么麻烦有什么用意呢?直接写成D: Integer;不行吗?这句的意思是将D的值读为FD,如果要为FD设置值的话就调用SetD赋值,然后D读取FD的值。