《Delphi程序设计基础教程》-曹静-电子教案 第6章 面向对象

上传人:E**** 文档编号:89398054 上传时间:2019-05-24 格式:PPT 页数:32 大小:359.50KB
返回 下载 相关 举报
《Delphi程序设计基础教程》-曹静-电子教案 第6章 面向对象_第1页
第1页 / 共32页
《Delphi程序设计基础教程》-曹静-电子教案 第6章 面向对象_第2页
第2页 / 共32页
《Delphi程序设计基础教程》-曹静-电子教案 第6章 面向对象_第3页
第3页 / 共32页
《Delphi程序设计基础教程》-曹静-电子教案 第6章 面向对象_第4页
第4页 / 共32页
《Delphi程序设计基础教程》-曹静-电子教案 第6章 面向对象_第5页
第5页 / 共32页
点击查看更多>>
资源描述

《《Delphi程序设计基础教程》-曹静-电子教案 第6章 面向对象》由会员分享,可在线阅读,更多相关《《Delphi程序设计基础教程》-曹静-电子教案 第6章 面向对象(32页珍藏版)》请在金锄头文库上搜索。

1、DELPHI程序设计基础教程,第六章 面向对象,2019年5月24日星期五,DELPHI程序设计基础教程,第六章 面向对象,本章学习导读 6.1 面向对象的概念 6.2 类 6.3 方法和属性 6.4 对象的应用 6.5 继承 6.6 多态 6.7 接口 本章小结,2019年5月24日星期五,DELPHI程序设计基础教程,本章学习导读,使用面向对象技术是开发复杂的、基于图形用户界面的软件的必然选择,掌握面向对象技术可以帮助我们开发出复杂、高级的系统,这些系统既完整,又可扩充,把对象作为基本实体看待的面向对象的模型是OOP的基础 ,这种模型可以使对象之间相互作用。,2019年5月24日星期五,D

2、ELPHI程序设计基础教程,6.1面向对象的概念,6.1.1 面向对象的基本原理 6.1.2 建面向对象思想,2019年5月24日星期五,DELPHI程序设计基础教程,6.1.1 面向对象的基本原理,根据人类对客观世界的 认知规律,面向对象方法对复杂的客观世界进行如下抽象和认识: (1)观世界由各种各样的实体组成,这些实体称为对象。 (2)每个对象具有各自的状态和运动规律,受其它对象或外界环境的影响,对象会根据发生的具体时间做出不同的反应,进行对象间的交互。 (3)按照对象的专业和运动规律的相似,可以将相近的对象划为一类。 (4)复杂的对象由相对简单的对象通过一定的方式组成。 (5)不同对象的

3、组合及对象间的相互作用和联系构成了各种不同的系统,构成人们所面催的客观世界。,2019年5月24日星期五,DELPHI程序设计基础教程,6.1.1 面向对象的基本原理,面相对象技术的特点可以概括为抽象性、继承性、封装性和多态性。 (1)抽象性:指对现实世界中某一类实体或事件进行抽象,从中提取共同信息,找出共同规律;反过来,又可以把它们集中在一个集合中,定义为所设计目标系统中的对象。 (2)继承性:新的对象类可以通过继承原有对象类的某些特征或全部特征而产生出来,原有的对象类称为基类,新的对象类称为派生类,派生类可以直接继承基类的共性,派生类还可以添加自己所独有的特点。继承性简化了新对象类的设计。

4、 (3)封装性:是指对象的使用者通过预先定义的接口关联到某一对象的服务和数据时,无需知道对象内部运行的细节。 (4)多态性:是指不同类型的对象对相同的操作做出适当的不同响应的能力。,2019年5月24日星期五,DELPHI程序设计基础教程,6.1.2 建面向对象思想,详见教材.,2019年5月24日星期五,DELPHI程序设计基础教程,6.2 类,6.2.1 类的概念 6.2.2 类成员 6.2.3 可见性,2019年5月24日星期五,DELPHI程序设计基础教程,6.2.1 类的概念,类是用来创建对象的模板,类定义对象的共同特性,包括数据和操作。我们可以通过类声明来定义类,然后使用类来创建对

5、象。类声明是用来创建对象的抽象模板,由类创建对象的过程是实例化的过程,每各对象都是类的一个实例。类声明语法如下: type 类名=class(基类) 数据成员声明 函数成员声明 end;,2019年5月24日星期五,DELPHI程序设计基础教程,6.2.2 类成员,类的成员包括数据成员和函数成员。数据成员用来表示类中的数据变量。函数成员用来表示类中的操作。DELPHI中的函数成员包括构造函数、析构函数、方法和属性: (1)构造函数和析构函数是一种特殊的方法,用于创建和销毁对象。创建对象时用构造函数给对象分配相应的内存空间,销毁对象时使用析构函数来删除对象并释放相应的存储空间供新创建的对象使用。

6、 (2)方法是封装在类中的过程和函数。 (3)属性是访问对象数据的手段,也可以说是一种方法,可以设定对对象数据的访问方式(读取还是写入)。,2019年5月24日星期五,DELPHI程序设计基础教程,6.2.3 可见性,DLEPHI中类成员的可见性由四种:public(公有的)、protected(保护的)、private(私有的)和published(公布的)。加上这些限定符,类的定义语法为: type 类名=class(基类) private 类成员定义; protected 类成员定义; public 类成员定义; published 类成员定义; end;,2019年5月24日星期五,D

7、ELPHI程序设计基础教程,6.2.3 可见性,public成员是完全可访问的成员,可见性最大。该成员访问方便,不受限制。缺省情况下,类成员可见性是public。published与public具有相同的可见性。不同的是,published成员会产生RTTI。 private成员只能在声明它的类中被访问,它的派生类和实例都无法访问。DELPHI的private并不是严格意义上的私有,在同一个单元文件中,类的私有成员是可以被其它类访问的。通过私有成员的限制,可以更好的封装和保护自己的类。 protected成员在声明它的单元文件中是随时可用的,并且在它的派生类中也是可用的。在派生类的所有方法定义

8、中,既可以调用protected方法,也能读取或写入protected数据成员或属性。 在继承中,可以在派生类中通过重新声明来 扩大一个类成员的可见性,但不能降低它的可见性。如一个protected属性在派生类中不能改为private,但是可以被改为public。另外published成员不能在派生类中改为public。,2019年5月24日星期五,DELPHI程序设计基础教程,6.3 方法和属性,6.3.1 方法的概念 6.3.2 方法的绑定 6.3.3 属性,2019年5月24日星期五,DELPHI程序设计基础教程,6.3.1 方法的概念,方法就是过程和函数,只不过是在类中定义,用来实现对

9、象的操作,它属于特定的对象。在DELPHI中,方法的声明和实现是分开的。声明的语法如下: type 类名=class(基类) 可见性限定符 procedure 方法名(参数表); function 方法名(参数表):返回值类型; end;,2019年5月24日星期五,DELPHI程序设计基础教程,6.3.1 方法的概念,实现一个方法的语法如下: procedure 类名.方法名(参数表); 常量、变量定义 begin 执行语句; end; 或者 function 类名.方法名(参数表):返回值类型; 常量、变量定义 begin 执行语句; end;,2019年5月24日星期五,DELPHI程序

10、设计基础教程,6.3.1 方法的概念,调用一个方法的语法如下: 对象实例名.方法名(实参);,2019年5月24日星期五,DELPHI程序设计基础教程,6.3.2 方法的绑定,方法的绑定指的是建立方法调用和方法体之间的联系。如果绑定动作发生于程序执行之前,那么这种绑定称为“早绑定”或“先期绑定”。如果绑定动作在程序执行时根据对象类型完成,那么这种绑定称为“晚绑定”或“后期绑定”。“后期绑定”也称为动态绑定。 根据方法的绑定机制可以将方法分为静态(static)方法、虚(virtual)方法和动态(dynamic)方法,其中虚方法和动态方法又可以时抽象(abstract)方法。 TMyClass

11、=class procedure IAmAStatic;/静态方法 procedure IAmAVirtual;virtual;/虚方法 procedure IAmADynamic;dynamic;/动态方法 procedure IAmAVirtualAbstract;virtual;abstract;/虚抽象方法,2019年5月24日星期五,DELPHI程序设计基础教程,6.3.3 属性,可以把属性看成是能对类中的数据进行修改和执行代码的特殊的辅助数据成员,属性看上去很像一个数据成员,但本质上它是函数成员。对组件来说,属性就是列在对象编辑器窗口中的内容。,2019年5月24日星期五,DELP

12、HI程序设计基础教程,6.4 对象的应用,6.4.1 对象的定义 6.4.2 对象的创建 6.4.3 对象的使用,2019年5月24日星期五,DELPHI程序设计基础教程,6.4.1 对象的定义,对象可以视为一组相关的操作代码和数据组合:对象封装了方法和数据,并提供外部调用的接口。这使得对象可以作为一个独立的整体安全使用,维护了自身的完整性和可操作性。在面向对象程序设计中,过程和函数被称作方法成员,数据被称作数据成员。 对象是类的实例:对象是一种特殊的变量,它所属的数据类型是“类”类型。 对象可以相互协作:对象之间可以通过发送消息请求而相互联系,在消息中可以调用方法和设置属性。 通过继承或封装

13、等方式可以产生新的对象:用这些方法产生新对象可以实现代码的重用以隐藏系统的复杂性。,2019年5月24日星期五,DELPHI程序设计基础教程,6.4.2 对象的创建,对象的生命周期 对象是类的动态实例,对象是通过类创建的。每个对象都有其生命周期。一个对象的生命周期有三个阶段:产生、活动和消亡。我们在编程过程中也要实现对应的工作:创建、运行和销毁。 对象的构造 在使用一个对象前,首先要声明对象的类型,也就是说要先声明一个类 。 对象的析构 析构函数的作用与构造函数的作用正好相反,它用于销毁对象并指定销毁对象时的动作,通常时释放对象所占用的内存空间及其他相关资源。析构函数的名称是destroy()

14、,但使用完毕对象后,应该调用这个对象的free()方法来释放它。free()首先检查保证这个对象实例不为Nil(没有占用资源),然后它调用对象的析构函数destroy()。,2019年5月24日星期五,DELPHI程序设计基础教程,6.4.3 对象的使用,详见教材.,2019年5月24日星期五,DELPHI程序设计基础教程,6.5 继承,6.5.1 继承的定义 6.5.2 继承的使用,2019年5月24日星期五,DELPHI程序设计基础教程,6.5.1 继承的定义,2019年5月24日星期五,DELPHI程序设计基础教程,6.5.2 继承的使用,详见教材.,2019年5月24日星期五,DELP

15、HI程序设计基础教程,6.6 多态,6.6.1 多态与动态绑定 6.6.2 方法的覆盖、隐藏和重载,2019年5月24日星期五,DELPHI程序设计基础教程,6.6.1 多态与动态绑定,动态绑定指的就是根据当引用对象的变量调用成员方法时,根据对象的具体类型来选择到底调用哪个类中声明的方法,具体请看下节中方法覆盖的内容。,2019年5月24日星期五,DELPHI程序设计基础教程,6.6.2 方法的覆盖、隐藏和重载,在DELPHI中,多态是通过覆盖方法来实现的,通过覆盖可以使一个方法在不同的派生类间表现不同的行为。DELPHI中只有在声明时用virtual或dynamic加以限定的方法才可以被覆盖

16、以实现多态。要覆盖一个方法,需要在派生类的声明中用override代替virtual或dynamic。 如果在声明一个方法时,它和继承它的方法具有相同的名称,但不包含override限定符,那么新方法仅仅是隐匿了继承下来的方法,并没有覆盖它。这两种方法法在派生类中都存在,方法是静态绑定的。 有时候,需要在派生类中增加一个方法,而这个方法的名称与祖先类中的某个方法名称相同。这时只需要在派生类中重新声明这个方法即可。 DELPHI中,方法也支持重载。某个方法可以使overload限定符来重新声明,此时,若重新声明的方法和祖先类的方法具有不同的参数,那么它只是重载了这个方法,并没有隐匿它。当派生类调用此方法时,会根据参数来决定到底调用哪个方法。,2019年5月24日星期五,DELPHI程序设计基础教程,6.7 接口,6.7.1 定义接口 6.7.2 实现接口,2019年5月24日星期五,DELPHI程序设计基础教程,6.7.1 定义接口,就像所有的DELPHI类都派生于TObject一样,所有的接口都派生于一个被称为是IunKnown

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号