//类单元 unit Person; interface uses Dialogs; type TPerson = class(TObject) private FName: string; FAge: Integer; public constructor Create(strName: string; intAge: Integer); destructor Destroy; override; function GetName: string; function GetAge: Integer; procedure SetName(const strName: string); procedure SetAge(const intAge: Integer); end; implementation { TPerson } constructor TPerson.Create(strName: string; intAge: Integer); begin inherited Create; //这里的 Create 不能省略, 因为参数不一样 FName := strName; if intAge<0 then intAge := 0; FAge := intAge; end; destructor TPerson.Destroy; begin ShowMessage(FName + '向你问好!'); //inherited Destroy; inherited; //省略就是继承同名方法 end; function TPerson.GetName: string; begin Result := FName; end; function TPerson.GetAge: Integer; begin Result := FAge; end; procedure TPerson.SetName(const strName: string); begin FName := strName; end; procedure TPerson.SetAge(const intAge: Integer); begin if intAge<0 then FAge := 0 else FAge := intAge; end; end.
//测试: uses Person; procedure TForm1.Button1Click(Sender: TObject); var PersonOne: TPerson; begin PersonOne := TPerson.Create('wy',99); ShowMessage('姓名:' + PersonOne.GetName + '; 年龄:' + IntToStr(PersonOne.GetAge)); //姓名:wy; 年龄:99 PersonOne.SetName('万一'); PersonOne.SetAge(100); ShowMessage('姓名:' + PersonOne.GetName + '; 年龄:' + IntToStr(PersonOne.GetAge)); //姓名:万一; 年龄:100 PersonOne.Free; //万一向你问好! end;