使用過(guò)c++的人都知道在c++的類中有靜態(tài)屬性及靜態(tài)方法,為程序設(shè)計(jì)帶來(lái)很多方便.那么在Delphi中靜態(tài)屬性及靜態(tài)方法是怎么實(shí)現(xiàn)的呢?請(qǐng)看下面的實(shí)例:
unit Unit2;
interface
type
TMyClass = Class
public
{靜態(tài)過(guò)程:設(shè)置靜態(tài)屬性的值}
class procedure SetStaticMemberValue(AString: string);
{靜態(tài)函數(shù):讀取靜態(tài)屬性的值}
class function GetStaticMemberValue: string;
end;
implementation
{在此聲明靜態(tài)屬性,這一點(diǎn)與c++有很大的不同}
var
AStaticMember: string;
class function TMyClass.GetStaticMemberValue: string;
begin
Result := AStaticMember;
end;
class procedure TMyClass.SetStaticMemberValue(AString: string);
begin
AStaticMember := AString;
end;
end.
那么在TMyClass中聲明的屬性及方法是否是靜態(tài)屬性或靜態(tài)方法呢?請(qǐng)看下面的實(shí)例:
...
uses unit2
...
procedure TForm1.Button2Click(Sender: TObject);
begin
{不需聲明TMyClass的實(shí)例,可直接設(shè)置及讀取靜態(tài)屬性的值}
TMyClass.SetStaticMemberValue('MyClass');
showmessage(TMyClass.GetStaticMemberValue);
end;
unit Unit2;
interface
type
TMyClass = Class
public
{靜態(tài)過(guò)程:設(shè)置靜態(tài)屬性的值}
class procedure SetStaticMemberValue(AString: string);
{靜態(tài)函數(shù):讀取靜態(tài)屬性的值}
class function GetStaticMemberValue: string;
end;
implementation
{在此聲明靜態(tài)屬性,這一點(diǎn)與c++有很大的不同}
var
AStaticMember: string;
class function TMyClass.GetStaticMemberValue: string;
begin
Result := AStaticMember;
end;
class procedure TMyClass.SetStaticMemberValue(AString: string);
begin
AStaticMember := AString;
end;
end.
那么在TMyClass中聲明的屬性及方法是否是靜態(tài)屬性或靜態(tài)方法呢?請(qǐng)看下面的實(shí)例:
...
uses unit2
...
procedure TForm1.Button2Click(Sender: TObject);
begin
{不需聲明TMyClass的實(shí)例,可直接設(shè)置及讀取靜態(tài)屬性的值}
TMyClass.SetStaticMemberValue('MyClass');
showmessage(TMyClass.GetStaticMemberValue);
end;