第6章面向对象的概念和模型.pptVIP

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

第6章 面向对象的概念与模型 思考题 软件开发中为什么要使用面向对象方法? 面向对象分析方法与结构化分析方法有哪些相似之处?有何区别? 面向对象方法是对过去的一个完全突破,还是“换汤不换药” 传统方法学的缺点 存在的问题: 生产率提高的幅度远不能满足需要; 软件重用程度很低; 软件仍然很难维护; 软件往往不能真正满足用户需要。 出现上述问题的原因很多,最根本的是瀑布型开发模型和结构化技术的缺点。 传统方法学的缺点 瀑布型模型的缺点:僵化 瀑布模型要求:生命周期各阶段间遵守严格的顺序。 实际情况:软件开发往往在反复实践中完成。 瀑布模型要求:预先定义并“冻结”软件需求。 实际情况:某些系统的需求的一个逐渐明确的过程,且预先定义的需求到软件完成时可能已经过时。 传统方法学的缺点 结构化技术的缺点 : 本质上是功能分解,以实现功能的过程为中心,而用户的需求变化主要是针对功能的。这就使基于过程的设计不易被理解;且功能变化往往引起结构变化较大,稳定性不好。 系统有明确的边界定义,且系统结构依赖于系统边界的定义,这样的系统不易扩充和修改。 结构分析技术对处理的分解过程带有任意性,不同的开发人员开发相同的系统时,可能经过分解而得出不同的软件结构。 数据与操作分开处理,可能造成软构件对具体应用环境的依赖,可重用性(reusability)较差。 解决问题的途径 新的软件开发模型,如快速原型方法、螺旋型方法等; 新的软件开发方法学――面向对象方法学。 面向对象方法学OOM 特点:尽可能模拟人类习惯的思维方式,即问题域与求解域在结构上尽可能一致。与传统方法相反,OOM以数据或信息为主线,把数据和处理结合构成统一体—对象。这时程序不再是一系列工作在数据上的函数集合,而是相互协作又彼此独立的对象的集合。 面向对象的基本概念 对象是现实世界中个体或事物的抽象表示,是面向对象开发模式的基本成份。 对象是指将属性(数据/状态)和操作(方法/行为)捆绑为一体的软件结构,代表现实世界对象的一个抽象。 属性表示对象的性质,属性值规定了对象所有可能的状态。一般只能通过执行对象的操作来改变。 操作描述了对象执行的功能,若通过消息传递,还可以为其它对象使用。 类:物以类聚 类(class)是一组具有相同属性和相同操作的对象的集合。 类的定义包括该类的对象所需要的数据结构(属性的类型和名称)和对象在数据上所执行的操作(方法)。 类定义可以视为一个具有类似特性与共同行为的对象的模板,可用来产生对象。 实例 实例(instance)是从某类创建的对象,它们都可使用类中提供的函数。 对象的状态则包含在实例的属性中。 实例化 (instantiation)是指在类定义的基础上构造对象的过程。 同一个类的不同对象的差别是通过不同对象的不同属性值的差别来体现的。 封装 封装encapsulation是指将对象的状态信息(属性)和行为(方法)捆绑为一个逻辑单元,并尽可能隐藏对象的内部细节。 封装是面向对象的一个重要原则,它有两个涵义:第一个是把对象的全部属性和全部操作结合在一起,形成一个不可分割的独立对象。第二个是“信息隐藏”,即尽可能隐藏对象的内部细节,对外形成一个边界,只保留有限的对外接口使之与外部发生联系。 封装可以提高事物的独立性,而且还可以有效地避免“交叉感染”和减少“波动效应”。 继承 :相似性与多样性 继承(inheritance):类可分层,下层子类与上层父类有相同特征,称为继承。 继承是使用已存在的定义做为基础建立新定义的技术。 新类的定义可以是既存类所声明的数据和新类所增加的声明的组合。新类复用既存的定义,而不要求修改继承类。 既存类可当做基类来引用,则新类相应地可当做派生类来引用。 使用继承设计一个新类,可以视为描述一个新的对象集,它是既存类所描述对象集的子集合。 这个新的子集合可以认为是既存类的一个特殊化。Quadrilateral类是Polygon类的特殊化。Quadrilateral是限制为四条边的多边形。我们还可以进一步地把类Quadrilateral特殊化为Rectangle 。 类Quadrilateral的操作可以等同于类Polygon的操作,而Rectangle类的操作又与Quadrilateral类的操作相同。 新类的操作还可以被看做是既存类操作的一个扩充操作。例如,从一个既存的车辆类派生的四轮驱动车类可能不仅是车辆类子集合定义的特殊化,而且还可能在新类的操作中引入新的能力。 类的继承层次 在类的继承层次中,Quadrilateral的实际参数可以替换Polygon的形式参数。 类Quadrilateral的操作与类Polygon的操作是相容的 Quadrilateral的操作可响应Polygon操作的所有消息。

文档评论(0)

155****8706 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档