属性是这样的成员:它们提供灵活的机制来读取、编写或计算私有字段的值。可以像使用公共数据成员一样使用属性,但实际上它们是称作“访问器”的特殊方法。这使得可以轻松访问数据,此外还有助于提高方法的安全性和灵活性。
语法:
Property PropertyName read fieldOrMethod write fieldOrMethod
关键字 Property 关键字表示开始声明了一个属性;
PropertyName 是自定义合法的属性名 ;
每个属性至少有一个读限定符或一个写限定符,或两者都有,它们称为访问限定符,具有以下的格式:
read fieldOrMethod
write fieldOrMethod
在TSL.INI支持,一旦设定该选项为1,则任何域的property都可被访问,无论是public还是protected,private。默认情况下这种违反规则是不被允许的。
[Compatible]
PrivatePropertyAccess=1
1 属性可以具有Private,Protected或public可见性,默认为public.
2 如果单有读限定符,表示属性只读;如果单有写限定符,表示属性只写。
3 如果它是在祖先类中声明的,则它对派生类必须是可见的,则fieldOrMethod不能是私有的字段或方法;
在读限定符中,若fieldOrMethod 是一个方法,它必须是一个不带参数的函数
4 在写限定符中,若fieldOrMethod 是一个方法,它必须是一个带有单一参的方法,或至少有一个单一参数的重载方法。
5 属性可以在派生类中给重新定义.
示例:
program test;
Type myDate = Class
private
_month ;
Function SetMonth(value);
Begin
if value>0 and value<13 then
_month:=value;
End;
public
property
Month read _month write setMonth;
End;
Begin
D:=CreateObject("myDate");
D.Month:=7;
Writeln(D.Month);
End.