|
(1) 数组类型:数组类型名应表达出该数组的用途。类型名必须加字母T为前缀。如果要声明一个指向数组类型的指针,则必须加字母P为前缀,且声明在类型声明之前。
例如:
type
PCycleArray = ^TCycleArray;
TCycleArray=array [1..100] of integer;
实际上,数组类型的变量实例与类型名称相同,但没有T前缀。
(2)记录类型:记录类型名应表达出记录的用途。类型名必须加字母T为前缀。如果要声明一个指向记录类型的指计,则必须加字母P为前缀,且其声明在类型声明之前。
例如:
type
PStudent = ^ TStudent;
TStudent = record
StudentName: string;
StudentAge: Double;
6.类
(1) 命名与格式
类的名称应当表达出类的用途。类名前要加字母T,表示它是一个类型。
例如:
type
TStudent= class (TObject);
类的实例名称与类名相同,只不过没有前缀T。
var
Student: TStudent;
注意关于组件的命名,请参阅6.6节“组件”。
(2) 字段
命名与格式:字段的命名遵循与变量相同的规则,只不过要加前缀F,表示这是字段。
可见性:所有字段必须为私有。如果要在类的作用域之外访问字段,可借助于类的属性来实现。
(3) 方法
命名与格式:方法的命名遵循与过程和函数相同的规则。
静态方法:当你不希望一个方法被派生类覆盖时,应当使用静态方法。
虚拟方法与动态方法:当你希望一个方法能被派生类覆盖,应当使用虚拟方法。如果类的方法要被多个派生类直接或间接地使用,则应当用动态方法。
例如:某一个类含有一个被频繁覆盖的方法,并有100个派生类,则应将方法定义为动态的,这样可以减少内存的开销。
抽象方法:如果一个类要创建实例,则不要使用抽象方法。抽象方法只能在那些从不创建实例的基类中使用。
属性访问方法:所有属性访问方法应当定义在类的私有或保护部分。属性访问方法遵循与过程和函数相同的规则。用于读的方法应当加G e t前缀,用于写的方法应当加Set前缀,并且有一个叫Value的参数,其类型与属性的类型相同。
例如:
TStudent = class (TObject)
private
FName: string;
protected
function GetName: string;
procedure SetName (Value: string);
public
property Name: string read GetName write SetName;
end;
(4) 属性
属性作为私有字段的访问器,遵循与字段相同的命名规则,只不过没有F前缀。属性名应为名词,而不是动词。属性是数据,而方法是动作。数组属性名应当是复数,而一般的属性应当是单数。
(5) 访问方法的使用
尽管不是必须,但还是建议你使用写访问方法来访问代表私有字段属性。
上一页 [1] [2] 没有相关教程
|