TSL语言基础 > Object TSL > 方法 > 声明和实现

静态方法声明和调用    

  • 静态方法与静态字段(静态成员变量)
     所有静态方法就是与对象实例无关的方法,其定义为在函数的前边加上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