郑大面 發表於 2020-1-14 16:12:00

Delphi 类Class成员介绍 Private、protected、Public、Published

<p><span style="font-size: 16px"><strong>Delphi 类Class成员介绍 Private、protected、Public、Published</strong></span></p>
<p><span style="font-size: 16px"><strong>1、成员定义</strong></span></p>
<p><span style="font-size: 16px"><strong>private&nbsp;</strong>&nbsp;  //用于声明对象方法和字段具有有限的可见性,在申明类的单元外这个类不能被访问(<strong>同单元可见</strong>)</span><br data-filtered="filtered"><span style="font-size: 16px"><strong>protected</strong>&nbsp; //用于表示对象方法和字段具有有限的可见性,只能被<strong>当前的类和他的子类访问</strong>,只用同一个单元中的类,子类和任何代码可以访问protected成员;</span><br data-filtered="filtered"><span style="font-size: 16px"><strong>public&nbsp; &nbsp;  </strong>//用于表示可以被程序代码中的<strong>任意部分访问</strong>的数据和对象方法.</span><br data-filtered="filtered"><span style="font-size: 16px"><strong>Published&nbsp;&nbsp;</strong>&nbsp;//是发布的,发布的属性可以在属性列表中看到</span></p>
<p><span style="font-size: 16px">&nbsp;</span></p>
<p><span style="font-size: 16px"><strong>Private: 私有的</strong>,只能自己使用或者是同一单元的子类使用(同单元可见),实例不可使用</span><br data-filtered="filtered"><span style="font-size: 16px"><strong>Protected,保护的</strong>,自己和子类均可使用(可见),实例不可访问的</span><br data-filtered="filtered"><span style="font-size: 16px"><strong>Public,公共的</strong>,具体实例可以访问和使用</span><br data-filtered="filtered"><span style="font-size: 16px"><strong>Published,发布的</strong>,主要是针对元件定义的类型,可以在属性列表中可见,使用同Public</span></p>
<p><span style="font-size: 16px">&nbsp;</span></p>
<p><span style="font-size: 16px"><strong>2、区别:</strong></span></p>
<p><span style="font-size: 16px">public和published差不多,区别仅在于<strong>Published的成员可以被Delphi开发环境的Object&nbsp;&nbsp; Inspector所显示</strong>,因此<strong>一般将属性或事件声明于 Published 段</strong></span></p>
<p><span style="font-size: 16px">public和published都是公有的,<strong>published又称发行成员,是说他定义的变量能在设计期访问</strong>,也就是在Object&nbsp;&nbsp; Inspector中显示可供设计期修改.</span></p>
<p><span style="font-size: 16px">一般来说,你拖放到窗体上的控件的代码申明,控件的事件代码的申明都是在Pubished里面,自己申明的东西不要放在Published下面。</span></p>
<p>&nbsp;</p>
<p><span style="font-size: 16px">published:</span><br data-filtered="filtered"><span style="font-size: 16px">&nbsp; &nbsp; &nbsp; &nbsp;对象的这一部分将产生运行期类型信息(RTTI),&nbsp;&nbsp;&nbsp;</span><br data-filtered="filtered"><span style="font-size: 16px">&nbsp; &nbsp; &nbsp; &nbsp;并使程序的其他部分能访问这部分,&nbsp;&nbsp;&nbsp;</span><br data-filtered="filtered"><span style="font-size: 16px">&nbsp; &nbsp; &nbsp; &nbsp;object&nbsp;&nbsp; inspector&nbsp;&nbsp; 用RTTI&nbsp;&nbsp; 来产生属性的列表.</span></p>
<p><span style="font-size: 16px">private:只有自己类中的函数或友类中的函数可以访问private级别的数据,不允许类的对象和其子类访问</span><br data-filtered="filtered"><br></p>
<p><span style="font-size: 16px">DELPHI初始化元件的属性时,是按published的<strong>顺序</strong>来的。因此,如果属性之间存在依赖(比如某属性的Get和Set方法会引用另外的属性),那么请根据依赖关系来编写published中的顺序。否则,可能在属性初始化时出错。</span></p>
<p><span style="font-size: 16px">public:是公共的,允许任何函数,类,对象访问,一般来说操作private数据的函数定义成public级别,提供对象与外部的接口;</span></p>
<p><span style="font-size: 16px">protected:是保护的,对于本类族是公开的,其它的类是私有的(即其它的类不可见)</span></p>
<p><span style="font-size: 16px">&nbsp;</span></p>
<p>&nbsp;</p>
<p><span style="color: rgba(136, 136, 136, 1)">创建时间:2020.01.14  更新时间:2020.12.08</span></p>
<p>&nbsp;</p>

</div>
<div id="MySignature" role="contentinfo">
    博客园 滔Roy https://www.cnblogs.com/guorongtao 希望内容对你有所帮助,谢谢!<br><br>
来源:https://www.cnblogs.com/guorongtao/p/12192575.html
頁: [1]
查看完整版本: Delphi 类Class成员介绍 Private、protected、Public、Published