C++课件C++_第七章_第1页
C++课件C++_第七章_第2页
C++课件C++_第七章_第3页
C++课件C++_第七章_第4页
C++课件C++_第七章_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1,第七章 面向对象程序设计,7.1 面向对象技术概述 7.2 对象与类 7.3 消息和方法 7.4 面向对象的程序设计,2,7.1 面向对象技术概述,为什么需要面向对象 什么面向对象技术 认知方法学角度:面向对象技术是属于思维科学中的一项工程技术。 程序设计方法学角度:面向对象方法是一种与传统软件工程的功能方法完全不同的,以对象为中心的方法。,3,7.1 面向对象技术概述,面向对象方法具有如下基本特征: 从客观存在的事物出发构造软件系统,用对象作为对这些事物的抽象表示,并以此为系统的基本构成单位。 事物的静态特征用对象的属性表示。 对象的属性和方法合为一体,成为一个独立的实体,对外不公开其内部特征和实现细节。 对所有事物进行分类,把具有相同属性和方法的对象归为一类,类是这些对象的抽象描述。 复杂对象可以由简单对象作为其构成部分。 对象之间通过消息进行通信,实现对象之间的动态联系。 通过关联表达对象之间的静态关系。,4,7.2 对象与类,对象 现实世界中的任何事物都可以称作为对象,它是大量的、无处不在的。世界就是一个对象集合。,5,7.2 对象与类,一个对象由一组属性和对这组属性进行操作的方法构成。 属性是用来描述对象静态特征的一个数据项,由对象特有的特征组成。 方法是指由对象完成的任务,或者是可是在对象完成的任务,用来描述对象动态特征的一个操作序列。,6,7.2 对象与类,请说出以下事物的属性和方法:,7,7.2 对象与类,类 忽略事物的非本质特征,只注意那些与当前目标有关的本质特征,从而找出事物的共性,把具有共同性质的事物划分为一类,得到一个抽象的概念,这个概念就是类。,例如下图:无论它几个轮子,我们都可以称其为车,8,7.2 对象与类,类与对象的关系就如同模具与用模具制造出来的铸件的关系,他们之间是抽象和具体的关系。类是对多个对象进行综合抽象的结果,对象又是类的个体实物,一个对象是类的一个实例。 现实中的对象和类有哪些?,9,7.2 对象与类,对象和类的区别 对象可被创建和销毁,但类是无所不在的。 类有以下特点: 类是一个定义属性和方法的模版。 类由程序员编写,并作为程序的一部分。 程序执行时,类本身并不存在,而是以一个或多个成员对象的形式出现。 在程序执行期间,类的代码不能修改,从这个意义上讲,类是静态的。 类由类名指定。,10,7.2 对象与类,对象特点 对象必须属于某个类。 对象在程序执行期间存在。 对象必须显式声明,而且要由执行程序来构造 对象具有属性和方法,在程序执行期间可以修改其属性值,也可以执行方法(对象 所属的类定义了这些属性和方法)。 对象通常用一个变量名来引用。,11,面向对象程序设计中的对象之间也存在着联系,称之为对象的交互,提供对象交互的机制成为消息传递。 类中操作的实现过程叫做方法。属于一个类的对象具有相同的行为,当某个行为作用于对象时,称该对象执行了一个方法,这个方法定义了该对象要执行的一系列计算步骤,所以方法是对象操作过程的算法。,7.3 消息和方法,12,7.3 消息和方法,消息性质 同一对象可以接受不同形式的多个消息并作出不同的响应。 相同形式的消息可以传递给不同的对象,作出的响应可以是不同的。 消息的发送可以不考虑具体的接受者,对象可以响应,也可以不响应。 消息分为公有消息和私有消息两类,公有消息是由其他对象发送来的消息,私有消息是自己向自己发送的消息。,13,程序一般由类的定义和类的使用两部分组成,主程序中定义各个对象并规定它们之间传递消息的规律,程序中的一切操作都通过向对象发送消息来实现,对象接收到消息后,调用有关对象的行为来完成相应的操作。 面向对象基本特征:抽象,抽象,多态,7.4 面向对象的程序设计,14,7.4 面向对象的程序设计,7.4.1 数据抽象和封装 将对象的属性和行为放在一起作为一个整体的方法称为封装,它将对象的大部分行为的实现隐蔽起来,仅通过一个可控的接口与外界交互。 抽象对同类事物的分析、比较,提取共性的、本质的内容的过程。封装把对象的属性和服务结合成一个独立的系统单元。尽可能隐蔽对象的内部细节。对外形成一个边界(或者说一道屏障),只保留有限的对外接口使之与外部发生联系。,15,抽象性,数据抽象:int Hour, int Minute, int Second 代码抽象:SetTime( ), ShowTime( ),16,封装性,C+通过建立数据类型类来支持封装和数据隐藏。封装性增加了对象的独立性,从而保证了数据的可靠性。,class Clock public: void SetTime(int NewH, int NewM, int NewS); void ShowTime( ); private: int Hour,Minute,Second; ;,17,手表,watch1,多块手表,主观世界,计算机描述,现实世界,18,7.4 面向对象的程序设计,7.4.2 继承性与软件重用,继承可以使用现有类的所有功能,并在无需重新编写原来的类的情况下对这些功能进行扩展。,19,7.4 面向对象的程序设计,7.4.2 继承性与软件重用 继承特性 类间具有共享特征(包括数据和程序代码的共享) 类间具有差别或新增部分(包括非共享的数据和程序代码) 类间具有层次结构,20,继承,21,7.4 面向对象的程序设计,7.4.3 多态性 多态是指同一个方法名(具有相同的操作)可作用于不同的对象,从而执行不同的方法代码并获得不同的结果 。在C+语言支持两种

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论