类成员封装等级学习
版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://520920.blog.51cto.com/126264/31251 |
Object Pascal类成员客分为5个封装等级:
1.private:
只能在该类声明所在的单元(Unit)内使用。此外,父类中private成员可被继承, 但它的子类无法使用这些成员。 2.protected:
只能在该类声明所在的单元(Unit)内使用,但可供子类使用。 3.public:
无论在任何单元内,该类于其所有子类的对象,都能使用它拥有的public成员。 4.published:
与public一样,但有一个很大的区别:Delphi的对象检视器(Object Inspector)可直接 显示本区域的成员,而此差别来自RTTI(runtime type information)机制。 a.重载(overloaded)函数不可作Published事件,
b.数组类,字段(field)(除非它属于class或interface类)不可作Published属性。 //RTTI(runtime type information)机制,为published所作,它允许程序动态查询该类的published的
//字段,属性(包括属性及事件)并且加载类的方法。必须使用“{$M+}”编译指令才能启动RTTI,或者 //是它的祖先类以上述状态编译,启动RTTI,然后在对象检视器显示。一般的窗体(TForm),可以显示 //它的published成员,因为它的父类有一个TPersistent类,是通过“{$M+}”编译指令编译而成,能启动 //RTTI。而所有对象模版上的组件类,几乎都继承自TPersistent类。 5.automated: 与public一样,区别是:当我们使用自动化服务器(Automation Server)时,“Automation type information”是为成员所设置。只能在OleAuto单元出现,继承自TAutoObject,且OleAuto单元本来就 有默认的Automated区。ComObj单元无法具有Automated区。 本文出自 “数据库爱好者” 博客,请务必保留此出处http://520920.blog.51cto.com/126264/31251 本文出自 51CTO.COM技术博客 |


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