类的学习
版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://520920.blog.51cto.com/126264/31250 |
一. 内建类定义:
//类的成员有:字段(field),方法(method)和属性(property)
// 对象是类的实体,拥有:方法(method),事件(event)和属性(property) //对象不能操作到类所声明的字段(成员变量),而且对象的属性不完全等同于类的属性 type TCheckListBox = class(TCustomListBox) //类名 //继承于TCustomListBox。若省略,继承于TObject; //类的成员变量(字段),对象不能直接访问,要通过成员函数访问 private FAllowGrayed: Boolean; procedure ResetItemHeight; //类的成员函数,属于“类方法”,只是在类中运行 procedure DrawCheck(R: TRect; AState: TCheckBoxState; AEnabled: Boolean); procedure SetChecked(Index: Integer; AChecked: Boolean); //一般成员函数,构造后为:对象的方法 protected procedure CreateWnd; override; public constructor Create(AOwner: TComponent); override; destructor Destroy; override; //类属性与对象属性的区别:
// 类的属性是对象之间传递信息的接口,决定了对象内部数据的读取及改变方式 // 一般常见属性所指的是对象所具有的属性 // 具体而言,类属性是指开头加property的成员,构造成对象后,根据性质划分为对象的属性和事件 //此为“属性”的一部分,构造后为:对象的属性 published property OnClickCheck: TNotifyEvent read FOnClickCheck write FOnClickCheck; property Align; //此为“属性”的一部分,构造后为:对象的事件 property OnClick; end; 二. 自定义类定义:
type Tchecked= object(Tcheck) 成员表;
end; 三. 对象的构造与析构:
1.内建类:要用create和destroy
//对象构造方法定义必须以保留字“constructor”代替“procedure”或“function” //析构函数用“destructor” 2.自定义类:不需要用create和destroy,就可以直接构造一个对象,接着也就可以操作对象的成员。 //此种方法构造的对象并未分配内存空间,只是跟一般变量一样,当程序执行到该例程(routine), //在编译时先分配对象变量的内存空间,离开例程时,立即释放内存空间。 //在内存空间的使用上,情况和记录类(record)的变量相同。 3.析构函数:
destroy是默认的析构方法,它只是删除对象的变量,也就是删除它的参考,而未删除对象的 实体,而且也不能释放对象所占的实体空间。所以,程序未中止前,未释放的内存空间就不能再用。 free不但具备destroy的功能,删除对象变量,还可以将对象的实体释放掉。且即使欲析构的
对象未构造实体,仍然可以正常执行,将所定义的对象删除掉。 本文出自 “数据库爱好者” 博客,请务必保留此出处http://520920.blog.51cto.com/126264/31250 本文出自 51CTO.COM技术博客 |


panther666
博客统计信息
热门文章
最新评论
友情链接