- 1、本文档共48页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第5章面向对象基本概念
第五章 面向对象基本概念 提纲 §5.1 什么是面向对象? §5.2 为什么要面向对象? §5.3 面向对象基本概念 §5.4 面向对象软件工程 §5.5 面向对象基本原则 §5.1 什么是面向对象? 人类认识世界的两个最基本的法则: 分类:任何事物都有其所属的类别,认识事物时首先识别类;(抽象) 组成:复杂事物都是由简单事物组成的。(聚集) 面向对象基本思想: 任何事物都是对象,客观世界是由各种互相联系的对象组成的; 每个对象都有自己的内部状态和运动规律; 不同对象之间相互作用构成了各种各样不同的系统。 §5.2 为什么要面向对象? 1. 面向对象技术采用主体-动作模式来刻画世界,符合人类认识世界的规律。 对于面向对象的用户界面,总是先选定一个界面对象,如一段正文或者一个图标,然后在这个对象上进行操作; 对于面向对象的程序设计语言,先指定接受消息的对象,然后才在对象上执行消息指定的操作; 对于面向对象的分析和设计,也是先确定系统中的实体对象,然后再确定在这些对象上可能实施的操作。 传统的面向过程的程序设计语言最关心的是过程,而过程实施的对象是作为过程参数传递的。面向对象中的数据是主动的,面向过程中的数据是被动的。 人类认识客观世界时也是先主体后动作的。 §5.2 为什么要面向对象? 程序设计方法学要求分析、设计和实现一个系统的方法尽可能地接近认识一个系统的方法。 人类在认识和理解现实世界的过程中,普遍运用着三个构造法则: (1)区分对象及其属性,例如,区分一棵树和树的大小或空间位置关系。 (2)区分整体对象及其组成部分,例如,区分一棵树和树枝。 (3)不同对象类的形成及区分,例如,所有树的类和所有石头的类的形成和区分。 §5.2 为什么要面向对象? 构造程序常用的方法如下: 功能分解法: 功能分解=功能 + 子功能 + 功能界面 功能分解需要经验 功能及其子功能只是间接地反映问题的实质,即使分析员认为功能划分清楚了,仍然无法验证功能集合是否精确完整地表达了问题需求。 功能经常发生变化,功能的大小(粒度)如何选择? 程序=算法(为主)+数据结构(为辅)[wirth定律] 问题空间和解空间不一致 §5.2 为什么要面向对象? 数据流方法 数据流方法=数据流+数据转移+数据存储+数据字典+加工说明 将世界映射为数据流和加工 类似于事件及对事件的处理 着眼于数据的变换(IPO),容易验证需求描述的准确性,不是简单的功能划分。 分析的时候强调数据流,但是设计的时候强调功能,这样分析和设计之间必然进行转换。因此,问题空间和解空间仍然不一致。 §5.2 为什么要面向对象? 信息模型方法(实体关系图,语义数据模型) 信息模型方法=实体+实体属性+实体关系+抽象实体+关联实体 没有描述实体的服务 没有描述实体之间发送消息的动态行为,只描述了静态的关联。 扩展ER图才描述实体的分类和组成结构 面向对象方法 面向对象方法=对象(属性及其服务)+分类+继承+消息 对象将属性和服务封装在一起 直接从问题空间映射为解空间 §5.2 为什么要面向对象? 系统的易变性和稳定性 功能?数据流?实体?对象(过程抽象?数据抽象) 需求容易变; 外部界面容易变; 数据属性容易变; 问题空间中的对象是稳定的。 面向对象将系统变化限制在对象范围内,并加以控制,变化对系统的影响范围小。 §5.2 为什么要面向对象? 对象工程的wirth定律 程序=(算法)+(数据结构) 程序=(算法+数据结构) 对象=(算法+数据结构) 程序= 对象+对象+……+对象 面向对象并不排除功能划分,只不过功能划分的角度是站在外部使用者角度的,而且这些功能最终要分配到主体对象上。 §5.2 为什么要面向对象? 3. 模块化要求 (1)模块定义 软件被划分成若干可单独命名和编址的部分,它们被称作模块,这些模块相互连接组成满足应用需求的软件系统。模块化是软件对付复杂问题所应具备的关键特性。 (2)模块的特征 模块的基本特征是抽象和实现信息隐藏。模块分模块界面和模块体两部分。模块对外的联系和相互作用只能通过模块接口进行。模块体是模块的具体实现细节,对外是不可见的。 抽象和信息隐藏正是面向对象的主要特征。 (3)模块化原则 可分解性:降低系统的复杂程度;模块应该具备一定的层次结构。 可组合性:组合的模块中有些是可以复用的;模块必须具备较高的通用性和适用性,具备规范的接口,易于组装。 可理解性:模块必须具有完整的语义特征,易于理解。 面向对象正好满足模块化的要求。 §5.2 为什么要面向对象? 4. 软件复用的支持 对象技术使软件复用更臻完善和规范:对象封装和继承可以很好地支持软件复用。 对象封装允许应用开发者将对象模块视作黑匣子,通过界面去理解和操作对象,而不去
您可能关注的文档
- 第5章 网页制作软件 Dreamweaver CS5(实验教程).ppt
- 第5章 触发器-upload.pptx
- 一年级上册课文.doc
- 一个新的四维动力系统的同步研究.ppt
- 第5章-油品低温流动性能的分析.ppt
- 第5章2015.8模拟电子技术.ppt
- 第5章 石油和天然气的聚集.ppt
- 第5章S7-200PLC的指令系统-1.ppt
- 第5章-柴油机供给系.ppt
- 第5章flash动画制作技术.ppt
- 人教版九年级英语全一册单元速记•巧练Unit13【速记清单】(原卷版+解析).docx
- 人教版九年级英语全一册单元速记•巧练Unit9【速记清单】(原卷版+解析).docx
- 人教版九年级英语全一册单元速记•巧练Unit11【速记清单】(原卷版+解析).docx
- 人教版九年级英语全一册单元速记•巧练Unit14【单元测试·提升卷】(原卷版+解析).docx
- 人教版九年级英语全一册单元速记•巧练Unit8【速记清单】(原卷版+解析).docx
- 人教版九年级英语全一册单元速记•巧练Unit4【单元测试·提升卷】(原卷版+解析).docx
- 人教版九年级英语全一册单元速记•巧练Unit13【单元测试·基础卷】(原卷版+解析).docx
- 人教版九年级英语全一册单元速记•巧练Unit7【速记清单】(原卷版+解析).docx
- 苏教版五年级上册数学分层作业设计 2.2 三角形的面积(附答案).docx
- 人教版九年级英语全一册单元速记•巧练Unit12【单元测试·基础卷】(原卷版+解析).docx
文档评论(0)