b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

pascal 视频教程_pascal和basic_pascal选择排序(80)

电脑杂谈  发布时间:2016-12-28 07:02:37  来源:网络整理

这里

? propertyName是任何有效标志符;

? [indexes]是可选的,它是用分号隔开的参数声明序列,每个参数声明具有如下形式:identifier1, ...,

identifiern: type。更多信息请参考Array properties;

? type必须是内置的或前面声明的数据类型,也就是说,像property Num: 0..9 ...这样的属性声明是非

法的;

- 108 -

Classes and objects

index integerConstant子句是可选的。更多信息请参考Index specifiers;

specifiers是由read、write、stored、default(或nodefault)和implements限定符组成的序列。每个属性声明必须至少包含一个read或write限定符。

属性由它们的访问限定符定义。不像字段,属性不能作为var参数传递,也不能使用@运算符,原因是属性不一定(是不一定,还是一定不呢?)在内存中存在。比如,它可能有一个读方法从中检索一个值或者产生一个随机数值。 ? ?

Property access(属性访问)

每个属性有一个读限定符,一个写限定符,或两者都有,它们称为访问限定符,具有以下的格式 read fieldOrMethod

write fieldOrMethod

这里,fieldOrMethod是一个字段或方法名,它们既可以和属性在同一个类中声明,也可以在祖先类中声明。

? 如果fieldOrMethod和属性是在同一个类中声明的,它必须出现在属性声明的前面;

类中声明的,则它对派生类必须是可见的,也就是说,若祖先类在不同的单元声明,

不能是私有的字段或方法;

? 若fieldOrMethod是一个字段,它的类型和属性必须相同;

? 若fieldOrMethod是一个方法,它不能是重载的,而且,对于公布的属性,访问方法必须使用默认的

register调用约定;

? 在读限定符中,若fieldOrMethod是一个方法,它必须是一个不带参数的函数,并且返回值和属性具

有相同的类型;

? 在写限定符中,若fieldOrMethod是一个方法,它必须是一个带有单一值参(传值)或常量参数的过

程,这个参数和属性具有相同的类型;

比如,给定下面的声明

property Color: TColor read GetColor write SetColor;

GetColor方法必须被声明为:

function GetColor: TColor;

SetColor方法必须被声明为下面之一:

procedure SetColor(Value: TColor);

procedure SetColor(const Value: TColor);

(当然,SetColor的参数名不必非得是Value。)

当在表达式中使用属性时,通过在读限定符中列出的字段或方法读取它的值;当在赋值语句中使用属性时,通过写限定符列出的字段或方法对它进行写入。

在下面的例子中,我们声明了一个叫做TCompass的类,它有一个公布的属性Heading。

过FHeading字段读取,写入时使用SetHeading过程。

type

THeading = 0..359;

TCompass = class(TControl)

private

FHeading: THeading;

procedure SetHeading(Value: THeading);

published

property Heading: THeading read FHeading write SetHeading;


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-23665-80.html

相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    热点图片
    拼命载入中...