五章面向对象基本概念.pptVIP

  1. 1、本文档共48页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
五章面向对象基本概念

第五章 面向对象基本概念 提纲 §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. 软件复用的支持 对象技术使软件复用更臻完善和规范:对象封装和继承可以很好地支持软件复用。 对象封装允许应用开发者将对象模块视作黑匣子,通过界面去理解和操作对象,而不去

文档评论(0)

118books + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档