这样定义属性有什么区别?(10分)

  • 主题发起人 主题发起人 WilliamGui
  • 开始时间 开始时间
W

WilliamGui

Unregistered / Unconfirmed
GUEST, unregistred user!
type
TA=class(TObject)
private
FY: integer;
public
X: integer;
property Y read FY write FY;
end;

请问X与Y有什么区别?
 
y是一个属性,可以用TA.Y的方式使用,如果是控件,可以在inspacter中出现。X不能出现在属性查看器中
 
X尽为TA类的一个公有变量;而Y为TA类的一个公有属性,它其实是隐藏了TA类的私有变量FY,另外,利用公有属性Y来隐藏对私有变量FY的访问,有利于日后对变量FY的访问方式的变化,只要私有变量FY的访问接口(也就是Y) 不变,其内部访问方式的改变对于最终用户是完全透明的,这样也就实现了OOP最根本的目的之一,数据和数据访问方式代码的隐藏。
 
因为Y属性没有自己的读写方法,所以从TA的角度看,二者基本没太多分别!
 
y的扩充余地更大,以后可以改变y的算法,而x就麻烦了
lxw5214说法错误,不信自己可以试试
 
多人接受答案了。
 

Similar threads

后退
顶部