delphi面向对象程序设计

工程保存的时候应该有一个自己的文件夹,而且要有一个有意义的名字,dpr文件管理所有的工程文件,dfm保存窗体的所有所有的信息。pas文件主要存放窗体事件的处理。

第四讲:delphi面向对象程序设计

类的声明:

type

类名=class

数据成员

成员函数或过程

end;

都集成自TObject,成员函数不允许在数据成员上定义。

type

student=class

name:string;

id:string;

score:real;

end;

记录类型

type

student=record;

name:string;

id:string;

score:real;

end;

有函数

type

student=class

name:string;

id:string;

score1:real;

score2:real;

procedure show();

function aver():real;

end;

{$R*.dfm}

procedure student.show();

begin

showmessage(name);

end;

function student.aver():real;

result:=(score1+score2)/2;

end;

对象的使用

var

对象名:类名;

对象声明后,并不能直接使用,必须 先创建对象。

创建对象

格式:

对象名.Create;

对象使用结束后,释放对象

释放对象格式:

对象名.destory;

对象名.free;

2、访问对象成员

格式:

对象名.成员;

注:访问对象之前,必须先创建对象。

3、类成员的访问权限

private 私有

只有该类的内部成员和本大院文件能够访问

protected 保护

之后累的内部成员和派生类可以访问

public 共有

类外部或内部都能够访问

注:在默认的情况下,类中没有访问修饰符,默认为 public

构造函数和析构函数

注意程序的内存泄露点的检查。

通过类声明了一个对象后,系统并没有创建该对象,只是定义了一个该对象的指针。我们需要构造该类的对象。

构造函数:create构造函数。是有类自动生成的一个默认的create函数,也可以通过首先create构造函数重载它。构造函数是一个特殊函数,用constructor标识,执行create构造函数之后,对象才再在内存中分配空间,创建对象。

析构函数:destory析构函数。自定义标识符:destructor.

继承

在已有类的基础上定义新的类。同时增加或重新定义数据和方法。

派生类:由类的基础上构造的新类。

type

派生类=class(基类)

end;

注意派生类和基类交流时的访问权限。

派生类的构造函数和析构函数

派生类中可以自己定义构造函数,也可以不显示地写(那么这个时候,自动调用基类的构造函数)如果需要可以用用inherited create在自己有构造函数时,仍然调用基类的构造函数。

析构函数也是一样的,如果自己有析构函数但仍然要基类的析构函数,用inherited destroy。

这一点十分重要:派生类释放时经常发生内存的泄露。

调用基础类和派生类的构造函数的顺序和你函数的调用顺序有关。

Delphi中的多态性

含有相同函数或过程名,而参数类型或 参数个数不同。用overload来重载。

重写从基类集成的函数或者过程,用override。

虚方法

基类用virtual,派生类override。

你可能感兴趣的:(Delphi)