软件工程导论教学资料-面向对象的特征.docVIP

软件工程导论教学资料-面向对象的特征.doc

  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文档。上传文档
查看更多
面向对象的特征 1. 继承性(inheritance) 继承是一种使用户得以在一个类的基础上建立新的类的技术。新的类自动继承旧类的 属性和行为特征,并可具备某些附加的特征或某些限制。新类称作旧类的子类,旧类称作新类的超类,继承能有效地支持软件构件的重用,使得当需要在系统中增加新的特征时,所需新代码最少,并且当继承和多态、动态联编结合使用时,为修改系统所需变动的原代码最少。继承机制的强有力之处还在于它允许程序设计人员可重用一个未必完全符合要求的类,允许对该类进行修改而不至于在该类的其他部分引起有害的副作用。 继承性是面向对象程序设计语言不同于其他语言的最主要特点,是其他语言所没有的。正因为继承机制才使得子类的对象也是超类的对象,所以所有发给超类对象的消息,子类 对象也可以接收。例如类“cycle”是类“shape”的子类,所以一个 cycle 对象可以接收发 给 shape 对象的消息。 知识链接: 继承机制是组织构造和重用类的一种工具,如果没有继承概念的支持,则所有的类都 像一盘散沙,分别是一个个独立的实体,每次软件开发仍要从“一无所有”开始,这时,由于类开发者在构造方法时仍然各 自为政,使得类和类之间没有什么联系,即使有,也只是程序员之间的某种约定的结果。 由于继承机制是由相关的关系来组织事物的,可以减少我们对相似事物运行说明和记 忆的规模,所以它为我们提供了一种有效的简化手段。彼此独立开发的事物常常是不一致的, 其中会有许多信息要求人们去记忆,这当然容易出差错。继承是面向对象语言中功能最强大、 最有代表性的特性。首先,继承使新的类变得简洁明了;其次,通过继承可以重复使用和扩 展那些经过测试的已有的类,实现重用。最后,是利用继承可以增强处理的一致性。 子类和继承是两个不可分割的概念,继承是在类、子类以及对象间共享数据和方法的 一种重用性(reusability)机制。在设计新类时,只需考虑与已存在的类所不同的部分,可以继承存在的类的内容作为自己的内容。已存在的类通常称作超类,新的类通常称作子类。子类不仅可以继承超类的方法,也可以继承超类的属性。如果超类中的某些方法不适合于子类,则可以重置这些方法,即重写方法新的实现部分并予以存储。 如果类 C 能使用类B 中的方法及属性,称 B 是 C 的超类(superclass),C 是 B 的子类(subclass),也称类 C 继承类B,如图 6-2 所示。 图6-2 继承 类间的继承关系是可以传递的:如果C 的超类是B,B 的超类是A,则 A 是C 的间接 超类,C 是A 的间接子类。而B 是C 的直接超类,C 是B 的直接子类。 继承可分为单继承和多继承,如果一个类只有一个直接超类,则这种继承叫做单继承;如果一个类有多于一个的直接超类,这种继承叫做多继承。 多继承的主要缺点是降低了类继承层次的易懂性。特别是当两个超类都有同名的方法, 但定义不同时,将引起很大的问题。必须定义一个新的方法或显式地选择一个已经存在的 定义。在大多数支持多继承的面向对象的程序设计语言中,用户被迫重新定义方法名以使 方法名唯一。这是最容易被接受的方案,一种特殊情况是同一方法存在于两个超类中,而这两个超类又具有同一个超类,这种继承称作重复继(repeated inheritance)即发生重名冲突。 知识链接: 在多继承中必须解决重复继承问题,解决方法随着语言的不同而不同。一种途径是发现这种冲突时发出时的出错信号,并要求子类对冲突的方法予以显示指明,指明方法是从哪个超类中继承来的。 2. 封装性(encapsulation) 在面向对象的方法中,所有信息都存储在对象中,即其数据及行为都封装在对象中。影响对象的唯一方式是执行它所从属的类的方法即执行作用于其上的操作。这就是信息隐 藏(information hiding),也就是说将其内部结构从其环境中隐藏起来。若要对对象的数据进行读写,必须将消息传递给相应对象,得到消息的对象调用其相应的方法对其数据进行读 写。因此,当使用对象时,不必知道对象的属性及行为在内部是如何表示和实现的,只需 知道它提供了哪些方法(操作)即可。 封装是一种信息隐蔽技术,用户只能见到对象封装界面上的信息,对象内部对用户来 说是隐蔽的。 封装是面向对象方法的一个重要原则,它有两个含义:第一个含义是,把对象的全部属性和全部服务结合在一起,形成一个不可分割的独立单位(即对象);第二个含义也称作信息隐蔽,即尽可能隐蔽对象的内部细节,对外形成一个边界,只保留有限的对外接 口使 之与外部发生联系。 封装的目的在于将对象的使用者和对象的设计者分开,使用者不必知道行为实际的细 节,只须用设计者提供的消息来访问该对象。 封装的定义为: (1) 一个清楚的边界,所有对

文档评论(0)

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

文档有任何问题,请私信留言,会第一时间解决。

版权声明书
用户编号:7043023136000000

1亿VIP精品文档

相关文档