构造函数是一个特殊的方法,用来创建和初始化一个实例对象。声明一个构造函数就像声明一个函数一样,不同的是方法名必须是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();