还是不太明白,delphi的类的属性加与不加property有何不同?

wtjd 2009-08-16 10:15:09
例如,我在delphi中申请下面了这个类,

MyClass =class
age :Integer;
Function GetAge:Integer;
Procedure SetAge(const Value:Integer);
public
property Age1:Integer read age write age;

end;



我不知道age属性与Age1属性有何不同, 加了property与不加propert有什么不样?

...全文
147 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
L3nnon 2010-08-20
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 apilove 的回复:]

区别还是不少的,比如属性有下面的特点:
在父类中声明的属性,对于子类应该是可见的,即不能是private。
属性可以是字段或方法,如果属性是方法,那么不能是dynamic,如果是virtual,则不能overload。

一个属性的声明,如果只有一个read标识,那么就是只读的属性,如果只有一个write标识,那么就是一个可写,但不能使用(读)的属性。
[/Quote]
学习学习。。 谢谢啦。。
wtjd 2009-08-18
  • 打赏
  • 举报
回复
原来是为了封装啊,
呵呵,
starluck 2009-08-17
  • 打赏
  • 举报
回复
對於類的封裝,數據輸入的控制都很有用的。
tianwanglaozi 2009-08-17
  • 打赏
  • 举报
回复
直接读取字段的方式不利于封装,也没办法设置权限

楼上的已经说了,property可以很好的控制读写权限
最重要的一点是,属性可以设置读写的方法,就是用一个过程来读取和返回属性值

类的属性不一定就是简单的值,有些时候需要通过计算或转换才能或取,这个时候就需要用一个过程来读取或返回值
preserve 2009-08-16
  • 打赏
  • 举报
回复
age 是字段 Age1是属性

通过属性访问可以很好的控制读写等权限
apilove 2009-08-16
  • 打赏
  • 举报
回复
A property, like a field, defines an attribute of an object. But while a field is merely a storage location whose contents can be examined and changed, a property associates specific actions with reading or modifying its data.
apilove 2009-08-16
  • 打赏
  • 举报
回复
上面的一些内容是我在Delphi 2007附带的英文帮助手册里看到的,写的很详细,你可以参考一下。
apilove 2009-08-16
  • 打赏
  • 举报
回复
区别还是不少的,比如属性有下面的特点:
在父类中声明的属性,对于子类应该是可见的,即不能是private。
属性可以是字段或方法,如果属性是方法,那么不能是dynamic,如果是virtual,则不能overload。

一个属性的声明,如果只有一个read标识,那么就是只读的属性,如果只有一个write标识,那么就是一个可写,但不能使用(读)的属性。

16,749

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 语言基础/算法/系统设计
社区管理员
  • 语言基础/算法/系统设计社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧