======================================================
注:本文源代码点此下载
======================================================
对于对象来说,一个域就象一个变量。域可以是任何类型,包括类类型。(也就是说,域可以保存对象引用。)域通常是私有的。
要定义类的域成员,只需简单地象声明变量那样声明域。所有的域声明必需出现在任何属性或方法声明之前。例如,下面的声明创建了一个叫做tnumber的类,该类中除继承自tobject的方法之外,仅有一个叫做int的整数域成员。
type tnumber = class
int: integer;
end;
域的范围是静态的,即编译时对域的引用是固定的。要明白这一含义,考虑如下代码:
type tancestor = class
value: integer;
end;
tdescendant = class(tancestor)
value: string;//隐藏了继承得到的value域
end;
var
myobject: tancestor;
begin
myobject := tdescendant.create;
myobject.value := 'hello!';//错误
tdescendant(myobject).value := 'hello!';//正常工作
end;
尽管myobject保存了tdescendant的一个实例,它声明为tancestor,但编译器仍将myobject.value解释为对tancestor中声明的整数域的引用。不过,在tdescendant实例对象中仍然存在两个域,只是继承得到的value域被新的域隐藏而已,可以通过类型转换访问前者。
======================================================
在最后,我邀请大家参加新浪APP,就是新浪免费送大家的一个空间,支持PHP+MySql,免费二级域名,免费域名绑定 这个是我邀请的地址,您通过这个链接注册即为我的好友,并获赠云豆500个,价值5元哦!短网址是http://t.cn/SXOiLh我创建的小站每天访客已经达到2000+了,每天挂广告赚50+元哦,呵呵,饭钱不愁了,\(^o^)/