TSL语言基础 > Object TSL > 方法

构造函数    

  • 构造函数是一个特殊的方法,用来创建和初始化一个实例对象。声明一个构造函数就像声明一个函数一样,不同的是方法名必须是create.
    Function Create()

    TSL总是为一个类生成默认的公有(public)的create方法, 如果显式没有为类声明public create,对象初始化时就使用默认的create方法,如果用户声明了public create 方法,对象初始化时就执行用户定义的方法。Create 不可以声明为私有(private)的和受保护(protected)的方法,否则对象初始化时不执行自己声明的方法.

    Create 方法可以被重载(overload)几个不同的定义。
    由于使用CreateObject方法创建对象,Craete 方法的返回值将被忽略。

    示例:
    示例是一个简单的日历类,说明了构造函数的重载,初始化时如果调用Create方法,设置为当前日期,否则可以指定具体的年月日

    program test;
    Type Calandar =Class
      year;
      month;
      day;

      function Create() ;overload;
      Begin
        Create(YearOf(Date()),MonthOf(Date()),DayOf(Date()));
      End;

      function Create(y,m,d);overload;
      Begin
        year:=y;
        month:=m;
        day:=d;
      End;
    End;

    Begin
      C:=CreateObject("Calandar");
      //C:=CreateObject("Calandar",2008,8,8);也可以指定具体的年月日
      writeln(C.year,C.Month,C.Day);
    End.

    构造函数的覆盖:
    构造函数可以在子类中被覆盖,如果显示声明了构造函数,为了是成员初始化,一般在新的构造函数中都要求实现基类的构造函数
    调用Class(BaseClass).Create();