CPP课件第3章面向对象程序设计概述2008章节幻灯片.pptVIP

CPP课件第3章面向对象程序设计概述2008章节幻灯片.ppt

  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文档。上传文档
查看更多
模块化 将一个复杂的大规模软件系统划分成几个规模较小、相对简单的模块,即分而治之。 面向对象程序设计方法是按对象来划分。 面向对象的软件系统由对象组成,对象之间通过消息传递互相联系,如图3.4所示。 面向对象的软件系统的组成 对象1 对象2 对象3 对象4 图中箭头表示对象之间的消息传递 对象作为程序模块 面向对象的软件系统中每一个模块都是高度独立的对象,而对象是比功能模块粒度更大的模块。 对象是由数据和对数据的操作(代码)形成的一个整体。 面向对象程序设计采用封装的办法,使对象的内部实现与外界隔离,实现了信息隐藏,从而提供了更理想的模块化机制,显著地减少了程序模块间的相互干扰和依赖性。 数据抽象技术 将数据和对数据的操作封装在一起,作为一个相互依存、不可分割的整体——对象来处理,它采用数据抽象和信息隐藏技术。 它将具有相同特征的对象抽象成一个新的数据类型——类,并且考虑不同对象之间的联系和对象类的重用性 3.4  数据抽象 3.4.1 什么是抽象? 3.4.2 数据抽象和抽象数据类型 抽象性的例子 class student { int number; char *name; float score; public: student( int number1,char * name1, float score1); ~student( ); void modify(float score1); void print( ); }; 抽象是有选择地忽略。 抽象性(Abstraction) 抽象是对复杂的现实世界的简明的表示。 抽象强调了我们所关心的(感兴趣)的信息,而将我们不关心的其他信息忽略。 名家之言 E.Dijkstra:“设计并实现一个大规模的软件的中心问题是怎样减小复杂度,一个途径就是通过抽象”。 Bjarne Stroustrup说:“在C++语言中,我一直在努力提高程序设计的抽象层次”。 抽象数据类型 一个值集和作用在值集上的操作集 C++语言中的一个类就是一个抽象数据类型 每个抽象数据类型自成一个模块,模块的接口和内部实现分离开来, 使用模块的应用程序员只需要知道如何使用该模块,而不必知道模块内部是如何实现的, 也就是说,可以忽略模块内部的实现细节。 3.5  封装性和信息隐藏 所谓封装(encapsulation) ,就是包含和隐藏对象信息,如内部数据结构和代码的能力。 在面向对象的程序中,通过创建对象将代码和数据捆绑在一起,并且在对象中包含了所有必需的代码和数据。 对象是支持封装的元素。 一个程序中的对象把现实世界中的实体的属性和行为封装成一个整体。 信息隐藏(information hiding ) 信息隐蔽(Information Hiding)的含义: 有效的模块化可以通过定义一组独立模块来实现,这些模块相互之间只交流软件功能必需的信息。 换句话说: 模块所包含的信息,不允许其它不需要这些信息的模块访问,独立的模块间仅仅交换为完成系统功能而必须交换的信息。 封装的好处 封装性降低了程序设计的复杂度。 封装将操作对象的内部复杂性与应用程序的其他部分隔离开来。 应用程序员只需要通过对象的接口来操作对象完成特定的任务,而不需要知道对象内部复杂的细节。 封装的好处(续) 提高了代码的安全性和可靠性; 通过类实现封装,集中和统一了对类中数据成员的所有操作,从而可避免因分散操作造成的错误。 能有效提到程序模块的独立性、可重用性和可维护性; 只要类的接口(即类的共有部分)保持不变,类的结构部分的任何变化(包括数据结构和算法)都不会对使用该类的源程序有所影响,源程序可以不做任何修改。 面向对象程序设计的主要特征 抽象性 封装性 继承性 多态性 3.6  继承性与软件重用 面向对象程序设计的第二个主要特征就是继承性,继承的目的就是为了重用(reuse)。 继承,就是在一个已有的类的基础上创建一个新类 ,这个新类获得了已有类的数据和操作代码,并且新类可以增加新的数据和操作代码。 继承与派生问题举例 派生类的概念 在已有类的基础上新增自己的特性而产生新类的过程称为派生。 被继承的已有类称为基类(或父类)。 派生出的新类称为派生类(或子类)。 参见图3.5 类的继承 继承与派生的目的 继承的目的:实现代码重用。 派生的目的:当新的问题出现,原有程序无法解决(或不能完全解决)时,需要对原有程序进行改造。 C++中类的继承层次自然地表达了人们分析问题时所用的分类结构。大大改善了软件系统的可理解性和可维护性。 继承的好处 (1)继承性很好地实现了代码的重用。 (2)能改进软件系统的可维护性。 (3)继承性使已有的程序库具有清晰的层次结构关系

文档评论(0)

精品课件 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档