現在學的是Delphi 的類,原D7的類我不就不記了,記下與D7不同的地方
a.class abstract 純虛類,不能實例化的類
type
TAbstractClass = class abstract
procedure SomeProcedure;
end;
以前的做法是在 procedure 的後面與 abstract ,現在只移類的說明上,只是意思一樣,就是直觀點少打字 呵呵.
b.class sealed 這個我目前不知是什麼意思,可能是不能繼承的類
type
TAbstractClass = class sealed
procedure SomeProcedure;
end;
c.class const 類的常量,這個地方在D7內可以定類的方法一樣能實現
type
TClassWithConstant = class
public
const SomeConst = 'This is a class constant';
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
ShowMessage(TClassWithConstant.SomeConst); //引用時,只寫類名就可能引用,不必實例化
end;
d.class type 類的類型, 在類的層次下可以定record,class子類什麼的,這個將數據的集中體現....
type
TClassWithClassType = class
private
type
TRecordWithinAClass = record
SomeFIEld: string;
end;
public
class var
RecordWithinAClass: TRecordWithinAClass;
end;
...
procedure TForm1.FormCreate(Sender: TObject);
begin
TClassWithClassType.RecordWithinAClass.SomeField := 'This is a fIEld of a class type declaration';
ShowMessage(TClassWithClassType.RecordWithinAClass.SomeFIEld);
end;
type
TOuterClass = class
strict private
MyFIEld: Integer;
public
type
TInnerClass = class
public
MyInnerFIEld: Integer;
procedure InnerProc;
end;
procedure OuterProc;
end;
procedure TOuterClass.TInnerClass.InnerProc;
begin
...
end;