R renaihaore Unregistered / Unconfirmed GUEST, unregistred user! 2006-06-02 #1 怎么对private和public理解啊, 理解不出来 请高手和大峡给小弟说说哦 不要说的太难 让我简单理解 谢谢哦
Z zylwolf Unregistered / Unconfirmed GUEST, unregistred user! 2006-06-02 #2 在public部分中说明其它库单元中对象的方法也可以访问的数据域或方法。在private部分的说明有访问的限制。如果您在private中说明域和方法,那么它在说明这个对象的库单元外是不透明的,而且不能被访问。private中可以说明只能被本库单元方法访问的数据域和本库单元对象访问的方法
在public部分中说明其它库单元中对象的方法也可以访问的数据域或方法。在private部分的说明有访问的限制。如果您在private中说明域和方法,那么它在说明这个对象的库单元外是不透明的,而且不能被访问。private中可以说明只能被本库单元方法访问的数据域和本库单元对象访问的方法
D duhai_lee Unregistered / Unconfirmed GUEST, unregistred user! 2006-06-02 #3 private 是私有得,只有类自身可以访问。 相当于你口袋里的钱, 只有你自己知道,也只有你自己能掏出来花, 别人不能,那是违法的。 public是公有的, 除了类,对象自身,其他外部资源也可以访问。 比方你能跟自己握手,你也可以和别人握手, 你可以叫自己的名字, 别人也可以叫你的名字。
private 是私有得,只有类自身可以访问。 相当于你口袋里的钱, 只有你自己知道,也只有你自己能掏出来花, 别人不能,那是违法的。 public是公有的, 除了类,对象自身,其他外部资源也可以访问。 比方你能跟自己握手,你也可以和别人握手, 你可以叫自己的名字, 别人也可以叫你的名字。
M muhx Unregistered / Unconfirmed GUEST, unregistred user! 2006-06-02 #4 按照我的理解 面向对象具有封装性 除非必须,尽量封装成Private。 一般来说域(有的资料叫数据成员),是类内部传输用的,Delphi一般习惯以F打头作为前缀,这需要封装成Private。 如果需要提供外部接口,那么使用属性来实现,属性一般都是Public。 比如电视机作为一个类 FVoice是它的域,表示当前的声音,要改变它只能内部实现,我们无法来从硬件上控制它的声音大小。硬件的实现,比如通过电流大小来改变等等我们都无需了解,这是封装的函数来完成的功能,这个函数称为方法,也是Private的。 GVoice是它的属性,是我们和电视机的接口,它是Public,是我们可以改变的。 比如我们要实现两个功能 1。得到当前的声音大小 2。调整声音大小 那么我们设置属性的时候可以这样写 property GVoice: TVoice read FVoice write SetVoice; 其中SetVoice就是实现改变声音大小的方法 这是我的理解,希望对你有帮助 不对的地方请指正。
按照我的理解 面向对象具有封装性 除非必须,尽量封装成Private。 一般来说域(有的资料叫数据成员),是类内部传输用的,Delphi一般习惯以F打头作为前缀,这需要封装成Private。 如果需要提供外部接口,那么使用属性来实现,属性一般都是Public。 比如电视机作为一个类 FVoice是它的域,表示当前的声音,要改变它只能内部实现,我们无法来从硬件上控制它的声音大小。硬件的实现,比如通过电流大小来改变等等我们都无需了解,这是封装的函数来完成的功能,这个函数称为方法,也是Private的。 GVoice是它的属性,是我们和电视机的接口,它是Public,是我们可以改变的。 比如我们要实现两个功能 1。得到当前的声音大小 2。调整声音大小 那么我们设置属性的时候可以这样写 property GVoice: TVoice read FVoice write SetVoice; 其中SetVoice就是实现改变声音大小的方法 这是我的理解,希望对你有帮助 不对的地方请指正。
M muhx Unregistered / Unconfirmed GUEST, unregistred user! 2006-06-02 #6 汽车是一个类 轿车,卡车,面包车是汽车的子类 帕撒特,红旗,索纳塔是轿车的子类 车牌为京A33333的索纳塔轿车是索纳塔轿车的一个实例
轻 轻舞肥羊 Unregistered / Unconfirmed GUEST, unregistred user! 2006-06-02 #7 private是老婆,只能自己用 public是小姐,别人随便用
J jangill Unregistered / Unconfirmed GUEST, unregistred user! 2006-06-02 #9 我建议, 看一下李维编写的书<面向对象编程>, 好像是这个名字, 这本书相当畅销. 在我看来, 类是对事物的抽象理解, 比如 人, 是一个类, 中国人是人这个类的具体例子, 而北京人是中国人这个类的一个具体例子. 例子/实例是相对它的父类而言的.没有绝对的.
我建议, 看一下李维编写的书<面向对象编程>, 好像是这个名字, 这本书相当畅销. 在我看来, 类是对事物的抽象理解, 比如 人, 是一个类, 中国人是人这个类的具体例子, 而北京人是中国人这个类的一个具体例子. 例子/实例是相对它的父类而言的.没有绝对的.
A Alex_Y Unregistered / Unconfirmed GUEST, unregistred user! 2006-06-02 #10 比如form1里的对应单元unit1的private你声明了abc;integer public中你声明了cde:integer 要在fomr2里调用form1里的变量,那么首先,你要引用form1对应的单元也就是unit1 use unit1;//加入这个 然后你会发现,在form2调用的时候,form2.,可以访问cde而不可以访问abc. 根据这个实例,可以说明private就是私有的,也就是说本单元中的任务过程,函数可以调用private里声明的变量,过程和函数,而且其它单元即使引用也不可以调用。 而public则不同,其它单元也可以调用。
比如form1里的对应单元unit1的private你声明了abc;integer public中你声明了cde:integer 要在fomr2里调用form1里的变量,那么首先,你要引用form1对应的单元也就是unit1 use unit1;//加入这个 然后你会发现,在form2调用的时候,form2.,可以访问cde而不可以访问abc. 根据这个实例,可以说明private就是私有的,也就是说本单元中的任务过程,函数可以调用private里声明的变量,过程和函数,而且其它单元即使引用也不可以调用。 而public则不同,其它单元也可以调用。