delphi:类的声明(转载)


在Delphi中,类被当作一个类型来定义。其语法格式:

    type 类名=class(基类)

      {字段声明}

      {方法声明}

      {属性声明}

    end;


    1、Delphi面向对象程序设计,要求对象都由某个基本对象继续而来,即由Class指定父对象。Delphi约定最基本的类是TObject,编程中我们所有的对象声明都是由TObject或由TObject派生的对象继承而来。如:

  Type TPerson = class(TObject)   // 从基类TObject继续声明人员类

   public          

      Name:string;                 // 姓名

      function GetAge:Integer;     // 获取年龄 

    private

      Age:integer;                 // 年龄

    end;

  注意:关键词class后的(TObject)可以省略。如:Type TPerson = class与Type TPerson = class(TObject)等效。

  Type TEmployee = class(TPerson)   // 从人员类继续,声明职员类

   public

      Salary:integer;                  // 薪金

      DaptName:string;                 // 部门名称

      procedure Infor;                 // 显示职员信息

      procedure SetSalary(A:Integer);  // 设置薪水

    end;


    2、由TObject继承派生的对象,默认构造函数、析构函数。上述对象TPerson、TEmployee的构造函数、析构函数分别为Creat()和Destroy()。如果要在对象中定义构造函数,要使用关键词constructor。如果要在对象中定义析构函数,要使用关键词destructor和override。如:


  Type TCustomer = class(TPerson)     // 从人员类继续,声明顾客类

   public

      AddressName:string;              //   

      procedure Infor;                 // 显示职员信息

      constructor Creat(Str:string);   // 设置薪水

      destructor Destroy:override;     // 设置薪水

    end;


   3、对象数声明的属性读和写,以及方法(内部的函数、过程),必须在Unit的实现部分(implementation)详细表述。


    function TPerson.GetAge:integer;

    begin

      Result:=Age;

    end;


    procedure TEmployee.Infor;

    begin

      Writeln('姓名',Name,'年龄',GetAge,'部门',DaptName,'薪水',Salary)

    end;


    constructor TCustomer.Creat(Str:string);

    begin

      inherited;               

      Writeln('顾客类的构造函数');

      AddressName:=Str;

    end;


    destructor TCustomer.Destroy;

    begin

      Writeln('姓名:',Name,'的顾客对象被删除');

      inherited Destroy;

    end;

    4、Delphi的每个类的根类都是TObject,如果不指明一个明确的基类,Delphi将自动使用TObject作为基类。例如:

    TMyObject=class                       //   默认基类为TObject

      provate

      ....

      public

      ...
————————————————
版权声明:本文为CSDN博主「lyhoo163」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/lyhoo163/article/details/5120755


原文地址:https://www.cnblogs.com/huiy/p/12508778.html