- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C程序设计ch14面向对象的程序设计实例
面向对象程序设计与实践 第14章 面向对象的程序设计实例 本课主要内容 面向对象程序设计的基本方法论 类的设计实例 抽象数据类型ADT 复数类的实现 向量的简单实现 多个类之间的关系 继承体系结构的设计实例——图形绘制 继承体系结构 基类的实现 建立派生类 is-a原则 实现多态调用 1面向对象程序设计的基本方法论 什么是面向对象? 面向对象表示软件通过离散的对象组织起来,这些对象本身包含了数据和行为 结构化方法以算法作为基本的构造块 OO方法以对象和类作为基本的构造块 面向对象的过程 面向对象分析(OOA) 面向对象设计(OOD) 面向对象编程(OOP) OOP使用对象而不是算法作为程序的基本构造块 每个对象都是某个类的实例 类可以继承 1面向对象程序设计的基本方法论 对象模型的要素 抽象 封装 模块化 层次化 1.1对象模型的要素 抽象 抽象集中于对象的外部视图 这个外部视图确定了一个其它对象可以信赖的一种契约(contract) 这个契约由对象内部细节实现 这个契约表达了该对象的职责和功能,确定了它的行为 契约中的每个操作都有唯一的签名 操作 操作的不变式是一个逻辑条件,该条件在整个操作的执行过程中保持不变 操作应满足的条件称为前置条件 操作的结果称为后置条件 如果不变式不能被满足,应抛出异常 所有的抽象都有静态和动态特性 类包含哪些属性是它的静态特性 这些属性的具体取值是它的动态特性 1.1对象模型的要素 封装 一旦选择了某种实现,这种实现应被看做是类内部的秘密,对外应隐藏 每个类有2个部分 接口:类的外部视图(public部分) 实现:类的内部实现(private部分) 模块化 就是系统分解。整个系统分解为多个子系统,每个子系统应有清晰的边界 模块的接口应尽量窄,容易发生改变的部分必须被隐藏在模块内部 架构师负责模块的划分和接口定义,编程人员负责模块的内部实现 1.1对象模型的要素 层次化 层次是抽象级别的顺序 层次有2个方面 类结构(is a) 继承结构 对象结构(part of) 组成结构 强关系称为组合,表示整体和部分有相同的生命周期,通过对象成员实现 弱关系称为聚合,表示整体和部分有各自的生命周期,通过指针成员实现 1.2 对象模型的基本概念 对象 对象包括状态、行为和唯一标识 状态 包括属性(静态结构)和属性的取值(动态特性) 行为 行为表明对象如何动作,如何响应消息和改变自身状态 行为可分为 选择和读取(不改变对象状态) 修改(改变对象状态) 迭代器 对象拥有的行为确定了对象的职责 对象的状态和行为描述了对象的角色 唯一标识 每个对象都有一个标识表明自己的唯一性 内存中的对象一般以内存地址作为唯一标识 数据库中的对象需借助唯一标识号进行唯一标识 1.2 对象模型的基本概念 对象间的关系 2种:链和聚合 链(link) 对象可以沿着链向另一个对象发送消息(即调用另一个对象的方法) 聚合 聚合表明一种整体——部分的关系 1.2 对象模型的基本概念 类 类是拥有相同结构、相同行为的同种事物的抽象 单个对象是类的一个实例 接口和实现 接口是类的外部视图 实现是类内部的细节 1.2 对象模型的基本概念 类之间的关系 3种:泛化/特化关系;整体/部分关系;关联关系 关联 是一种很弱的语义关系,表明2个类之间的依赖关系 从一个类可以找到另一个类 继承 描述类之间的泛化/特化关系 基类描述泛化 派生类描述特化 聚合 描述类之间的整体/部分关系 组合:物理包含 聚合:引用包含 1.3 面向对象的开发过程 总体开发过程 建立系统概念 分析师和用户构思应用前景,建立尝试性的需求 系统分析 建立面向对象的分析模型,包括2个部分 领域模型:完全是业务逻辑 应用模型:包含了用户使用系统的需求 编写系统需求规格说明 系统设计 建立系统架构 系统逻辑结构(分层与分区) 系统物理部署 编制系统架构文档 类设计 向分析模型中得到的类添加细节,形成完整的类设计 实现 编码实现和测试,实现类内部细节 1.3 面向对象的开发过程 类的设计过程 确定系统中有哪些类 确定类的属性、职责、方法和角色 通过用例确定类的职责 先分析行为,确定类的方法名称和职责 分析类之间的关系 建立类之间的关联关系 实现类 确定类内部实现的数据结构 确定类操作的实现算法 2 类设计实例 2.1 抽象数据类型ADT 类封装了数据成员和成员函数,组成一个自包含的实体 这样一个实体称为“抽象数据类型”(Abstract Data Type, ADT) 抽象:外部调用程序只关心这个类型对外表现的行为,而不关心它如何实现这种行为 ADT的基本特征是对这种自定义类型简单和清楚的描述 2.1抽象数据类型ADT 开发步骤 类的设计者需要首先确定类的行为 类的行为通过类对外的接口体
您可能关注的文档
- (绿茶公司与建材公司)合资谈判方案.doc
- 002土方开挖方案.doc
- (模块一:财务管理的基础知识)第1讲 财务管理的概述.ppt
- (精 精 精) 机房工程--验收方案.doc
- (BSCI验厂细节.注意事项.).doc
- 01 童年的问号.doc
- 0230指对运算.doc
- 02 500kV油浸式电抗器预防性试验(电气部分)作业指导书.doc
- 06.中餐厅服务操作规程.doc
- 08年9月与4月的计算机三级网络真题及答案.doc
- 19.风是怎样形成的(课件)2025青岛版三年级科学上册.ppt
- 湘科版信息科技三年级下册8单元活动2 保护计算机安全 课件 .ppt
- 1.2.2 声与听觉 课件 2025浙教版科学八年级上册.ppt
- 1.2 认识气温计(教学课件)科学教科版三年级上册(新教材).ppt
- 金融赋能新质生产力的内在逻辑与实现路径.pdf
- 第一单元第一课-认识智慧农业 课件 教科版2025信息科技八年级上册.ppt
- 湘科版信息科技五年级下册第8单元活动1 体验智能语音识别 教学课件.ppt
- 1.2 中国的人口 课件 2025人教版地理八年级上册.ppt
- Unit 1 第5课时 Part B Let’s learnDraw, write and say(教学课件)英语人教PEP版五年级上册(新教材).ppt
- 17.瘪的乒乓球鼓起来了(课件)2025青岛版三年级科学上册.ppt
文档评论(0)