您的位置:首页 > 编程语言 > Delphi

理解 Delphi 的类(十一) - 深入类中的方法[5] - 静态方法、类方法、静态类方法

2008-01-16 17:07 656 查看
//静态方法是默认的, 如果不是虚方法或纯虚方法, 那它就是一个静态方法.

//类方法就是通过类名就可以访问的方法

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;

type
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
end;

{类方法示例:}
TMyClass = class(TObject)
class procedure alert(s: string); {类方法只是比静态方法多了一个 class 指示字}
end;
{
类方法不能在 private 和 protected 区;
类方法不能是虚方法;
类方法只能使用类中的、在对象实例化以前的数据.
}

var
Form1: TForm1;

implementation

{$R *.dfm}

{ TMyClass }
class procedure TMyClass.alert(s: string);
begin
ShowMessage(s);
end;

{类方法可以直接使用}
procedure TForm1.Button1Click(Sender: TObject);
begin
TMyClass.alert('万一'); {万一}
end;

{类的对象当然也能使用}
procedure TForm1.Button2Click(Sender: TObject);
var
MyClass: TMyClass;
begin
MyClass := TMyClass.Create;
MyClass.alert('万一');  {万一}
MyClass.Free;
end;

end.

//静态类方法

{现在的 Delphi 不仅仅有类方法, 同时有:
类变量: class var
类常量: class const
类类型: class type
类属性: class property

静态类方法就是给类属性来调用的, 它可以存在与私有区(private),
譬如下面的 SetName 就是一个静态类方法:
}
TMyClass = class(TObject)
private
class var FName: string;
class procedure SetName(const Value: string); static; {静态类方法又多了一个 static 指示字}
published
class property Name: string read FName write SetName;
end;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐