类方法是一种特殊的方法,它们在声明和实现时都要以class开头,它具有以下特点:
1、类方法可以通过类名和对象名调用,使用类名调用时,可以不实例化。
2、类方法不能访问类中声明的属性、变量和普通方法。
3、类方法可以调用类中的其他类方法。
示例:
type
TSample = class
private
FValue: Integer;
public
procedure NormalProc1;
class procedure ClassProc1;
class procedure ClassProc2;
property Value: Integer read FValue write FValue;
end;
{ TSample }
class procedure TSample.ClassProc1;
begin
ClassProc2; //可以直接调用其他类方法
//NormalProc1; //错误:不能调用普通方法
// ShowMessage(Value.ToString); //错误:不能访问类属性
// ShowMessage(FValue.ToString); //错误:不能访问类变量
end;
class procedure TSample.ClassProc2;
begin
ShowMessage('ClassProc2');
end;
procedure TSample.NormalProc1;
begin
end;
外部调用:
procedure TForm1.btn1Click(Sender: TObject);
var
Sample1: TSample;
begin
TSample.ClassProc1; //可以用类名调用
Sample1.ClassProc1; //可以用对象名调用
end;