静态方法与静态字段(静态成员变量)
所有静态方法就是与对象实例无关的方法,其定义为在函数的前边加上
class前缀,也称
类方法。类方法定义了类的行为,与类的实例无关。
而静态成员则是在变量的前边加上
static前缀,表明该成员变量与对象实例无关,也就是所有对象实例均共用该变量,类似于一个作用域为该类的全局变量。
在静态方法中禁止使用类的非静态的成员变量。
类方法(静态方法)的声明:
声明类方法时 function 前面加 class.形式为:
Class Function FunctionName([p1,p2,…))
如果是外联实现,也在实现前面加 class,形式为:
Class Function ClassName.FunctionName([p1,p2,…))
类方法(静态方法)的调用:
在实例中的调用方法为:
class(类名).方法名.形式为:
Class(myClass).FunctionName([p1,p2,…])
静态方法与静态成员范例
Type Thuman=class
public
static mCount;//人的对象数量,与对象无关
class function getCount(); //得到人对象的数量,与对象无关
begin
return mCount;
end;
function create();
begin
mCount:=(mCount?:0)+1;//构造的时候+1
end;
function destroy();
begin //析构的时候-1
mCount--;
end;
End;
静态方法与静态成员的访问
class(Thuman).mCount:=100;//将Thuman类的静态字段mCount的值指定为100
echo class(Thuman).mCount;//输出静态字段mCount的值
hA:=new Thuman();//创建一个实例
echo class(Thuman).getCount();//调用静态方法
打印结果:
100
101