C++面向对象程序设计 教学课件 ppt 作者 朱战立 张玉祥 C++2

上传人:E**** 文档编号:89343059 上传时间:2019-05-23 格式:PPT 页数:28 大小:171KB
返回 下载 相关 举报
C++面向对象程序设计 教学课件 ppt 作者  朱战立 张玉祥 C++2_第1页
第1页 / 共28页
C++面向对象程序设计 教学课件 ppt 作者  朱战立 张玉祥 C++2_第2页
第2页 / 共28页
C++面向对象程序设计 教学课件 ppt 作者  朱战立 张玉祥 C++2_第3页
第3页 / 共28页
C++面向对象程序设计 教学课件 ppt 作者  朱战立 张玉祥 C++2_第4页
第4页 / 共28页
C++面向对象程序设计 教学课件 ppt 作者  朱战立 张玉祥 C++2_第5页
第5页 / 共28页
点击查看更多>>
资源描述

《C++面向对象程序设计 教学课件 ppt 作者 朱战立 张玉祥 C++2》由会员分享,可在线阅读,更多相关《C++面向对象程序设计 教学课件 ppt 作者 朱战立 张玉祥 C++2(28页珍藏版)》请在金锄头文库上搜索。

1、第二章 面向对象程序设计,传统软件开发方法,面向过程程序设计 围绕要求解的问题,详细准确地描述整个求解过程。 结构化分析和设计 自顶向下,逐步细化,模块化设计,结构化编码 快速原型方法 根据初步需求建立系统原型,讨论,修改,转换为实际环境下的目标系统,传统软件开发方法弊端,面向过程程序设计方法 小作坊式的软件设计方式,很难用大工业式的方式进行软件开发,即分工协作,接口规范,部件组装, 结构化设计方法 从功能抽象出发进行模块划分,它把基点放在不稳定的行为上,难以适应系统的变化。 快速原型方法 大型复杂的软件系统很难君安里一个一致的系统模型。,面向对象的软件开发方法,出发点 模拟人类习惯的思维模式

2、“顾客服务员”模式。是软 件开发方法和过程接近人类解决问题的方法和过程。 基本原则 不需大量修改员系统,发展完善功能。提高软件的可 重用度,易于维护升级。 用对象分解取代功能分解 用类的继承方法和对象多态性解决系统功能的修改 和完善。,面向对象技术的基本概念-对象,现实世界中的对象 一切有形事物和抽象概念都是对象。 我们身边发生的一切事件都是对象。 对象具有如下特征: 有一个名字用来唯一的标识该对象; 有一组状态用来描述其特征; 有一组操作用来实现其功能。,面向对象技术的基本概念-类,定义 具有相同属性和相同服务的一组相似对象的抽象。 类是建立某个具体对象时使用的模型或模板。 特性: 模块性,

3、相同属性和服务的封装体,提高了代码重复使用率。 抽象性,具有相同属性和服务的一个或多个对象的抽象描述。 继承性,子类可以在继承父类所有属性和服务的基础上,,面向对象技术的基本概念-类,类的确定和划分 基本原则 将系统中具有共性的部分确定为一 个类。 步骤 事物是否具有一个以上的具体例子 判断具体例子中是否有绝对的不同点,面向对象技术的基本概念-实例,定义 按照类模板所建立的一个个具体的对象称作类的实际例子,简称为实例。也称对象。,面向对象技术的基本概念-消息,定义 某个对象提出执行另一个对象具有的某个服务的申请。接受消息的对象主动完成指定服务。 组成: 接收消息的对象; 消息名; 零个或若干个

4、参数。,面向对象技术的基本概念-消息,性质 同一对象可接收不同形式的多个消息,产生的响应各不相同; 相同形式的消息可以送给不同的对象,产生的响应各不相同; 一个对象可以立即响应发送给它的消息,也可以暂时不响应消息。 分类: 要求返回对象内部属性(状态)的消息; 要求改变对象内部属性(状态)的消息; 要求改变系统状态的消息,或产生特定结果的消息。,面向对象技术的基本特征抽象,定义 从具体的例子中抽象出共同的性质,强调与目标系统有关的某些本质特性,忽略与目标无关的非本质特征,进行简化描述的过程。 两方面 数据抽象 行为抽象 例: 学生对象、圆对象的行为,面向对象技术的基本特征封装,定义 一个对象就

5、像是一个黑盒子,表示对象状态的属性和服务的实现代码被封装放在黑盒子里,从外面无法看见,更不能进行修改。对象向外界提供访问的接口,外界只能通过对象的接口来访问该对象。 类成员的存取权限分为: 私有(private) 保护(protected) 公有(public),面向对象技术的基本特征封装,封装方法 数据成员 使用private和protected存取权限 成员函数 把类设计分成两个文件实现:1)头文件(即.h文件)只包括类定义,构成所定义对象的接口; 2) 类库文件(即.lib文件、.obj文件等)包括类方法的实现代码,类库文件是编译后的文件,用户是无法看到方法的实现细节的,因此也无法修改方

6、法的实现代码。,面向对象技术的基本特征继承,定义 父类(基类)为了反映客观世界中事物之间的层次关系,将舍弃特性抽象出的一组对象的共性信息。 子类(派生类)是在父类基础上加入某一部分对象的特性形成的新类。 继承即是指子类自动继承父类中定义的属性和服务。 类层次(类结构)指一个系统中所有类按继承关系构成的结构图。,面向对象技术的基本特征继承,分类 单重继承指类层次中的所有类只允许有一个父类。 多重继承 继承方式 完全继承,即子类全部继承基类中的所有服务; 修改继承,即子类对基类中的一些服务在继承的基础上做一些补充或修改。 覆盖继承,即在子类中重新设计基类中的这些服务,从而用新的服务覆盖了旧的服务,

7、系统对对象中服务的查找次序是沿类层次的当前类逐层 向上查找!,面向对象技术的基本特征多态,多态性 指相同对象收到相同消息,或不同对象收到相同消息时,产生的不同行为方式。 例:max()函数重载,形状类绘图消息。 分类 编译时的动态性:编译时确定消息的具体操作对象。 运行时的动态性:运行时才才具体确定对象所属类层次中的具体类,从而确定外部程序所发消息的匹配对象和匹配方法。,面向对象软件开发步骤,对传统软件开发步骤的改动 用面向对象分析(OOA)方法进行总统设计 建立面向对象的系统模型 用面向对象设计(OOD)方法进行详细设计 细化、修改和补充面向对象的系统模型 用面向对象实现(OOP)方法进行编

8、码 用面向对象语言将面向对象的系统模型转化为设计软件系统,面向对象软件开发面向对象模型,模型 人们对现实世界中复杂事物以及这些事物之间关系的抽象的、可视化的表示。 人们把握复杂事物及其事物之间关系本质、并行分析和交流的工具。 由一组图示符号、图示符号规则以及必要的文字说明组成。利用模型把问题规范的表示出来,并可以作为下一步构造实际人工系统的设计依据。,面向对象软件开发面向对象模型,面对对象软件开发分析,步骤 确定类 三类对象:实体和概念、人或角色、事件 两种类:对象类(可实例化),抽象类(共性抽象,用于继承) 确定类属性 类所具有的性质、特征、状态 两种属性:实例属性,类属性(所有实例具有相同

9、属性值) 确定类方法 两种:常规方法,功能性方法 确定对象模式 建立起对象之间的联系方式,设计成static类型,例21 对象类、抽象类,对象类,抽象类,面对对象软件开发分析,对象模式 整体部分模式(组成、聚集关系) 表示一个整体对象概念有若干个部分对象概念合成构成。 用三角形表示,三角形尖对着整体类 具有传递性 一般特殊模式(分类关系) 表示一个对象是另一个对象的特例 用继承来反映对象一般特殊联系方式 用半圆表示,圆顶对着父类,面对对象软件开发分析,整体部分,一般特殊,面对对象软件开发分析,对象模式 连接模式(消息模式、关联关系) 一个对象与另一个对象有某种联系,之间可以发送消息。 用一条直

10、线直接连接存在消息模式的两个类。直线上方用文字 表示连接的含义。,面对对象软件开发设计,修改完善对象模型 写出许有类的定义 包括类名、属性、方法(方法名、方法函数的数据类型、参数、参数类型)、继承关系 补充计算机环境软件系统所要求的额外的、与实现有关的类和对象模型。 人机接口、数据管理、系统接口 市场提供支持软件和类库包 软件系统要求的其它设计,面对对象软件开发设计,基本准则 模块化 抽象 信息隐藏 低耦合、高内聚 可扩充 可重用,例21 复数加法运算(C/C+),include typedef struct float real; float image; Complex Add(Compl

11、ex x,Complex y) Complex z; z.real=x.real+y.real; z.image=x.image+y.image; return z; ,void show(Complex x,Complex y) printf(“real is %f,image is %f /n”, x.real,x.image); void main() Complex x=1,1,y=2,2,z; Z=Add(x,y); show(z); ,例21 复数加法运算(C/C+),#include class Complex Private: float real; float imag; P

12、ublic: Complex(float x=0,float y=0) real=x; imag=y; Complex Add(Complex x) ,Complex z; z.real=real+x.real; z.imag=imag+x.imag; Return z; void show() cout“real is”real; cout“imag is”imagendl; ; void main(void) comlex x(1,1),y(2,2),z; z=x.Add(y); z.show(); ,1.3 面向对象程序设计语言简介,Smalltalk语言是第一个真正面向对象的程序设计语

13、言 C+语言继承了C语言的所有语言成分,并增加了新的支持面向对象技术的语言成分。由于C语言在商业上的成功,C+语言对C语言具有的向下兼容性,和C+语言对面向对象技术的支持,所以,C+语言推出后,很快就获得商业上的成功 C+语言有很多种类,如Turbo C+、Borland C+、MS-C+、Visual C+等。 Java语言在1995年由SUN公司推出。是一种纯粹型面向对象程序设计语言。最大特点是跨平台性和安全性。在电子商务等方面的应用非常广泛。,纯粹型面向对象程序设计语言:仅支持面向对象方法的软件开发,如java 混合型面向对象程序设计语言既支持面向对象方法的软件开发,也支持面向过程方法和结构化方法的软件开发。如C+等 常用的面向对象软件开发环境 Power Builder、C+ Builder、Visual C+、Delph、Java Builder,面向对象程序设计语言的分类,

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

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

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