第8章类与对象剖析.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
《 C++程序设计》 第8章 类和对象 8.1 面向对象程序设计方法概述 8.2 类的声明和对象的定义 8.3 类的成员函数 8.4 对象成员的引用 8.5 类的封装性和信息隐蔽 8.6 类和对象的简单应用举例 8.1 面向对象程序设计方法概述 8.1.1 什么是面向对象的程序设计 8.1.2 面向对象程序设计的特点 8.1.3 类和对象的作用 8.1.4 面向对象的软件开发 1. 对象(object) 客观世界中任何一个事物都可看成一个对象,对象可大可小,它是构成系统的基本单位。 任何一个对象都应当具有两个要素:属性(attribute)和行为(behavior),它能根据外界给的信息(消息)进行相应的操作。一个对象往往是由一组属性和一组行为构成的。 在一个系统中的多个对象之间 是通过发送和接收消息互相联系的。 如右图8.1所示。 使用面向对象的程序设计方法设计一个复杂的软件系统时,首先确定该系统是由哪些对象组成,并且设计这些对象。 在C++中,每个对象都是由数据 和函数(即操作代码)这两部分组成,如 右图8.2所示。 【例】一个三角形对象,它的3个边 长就是它的数据。函数则是用来对数据进行操作的,以实现某些功能,如计算出三角形的面积、输出三角形的边长和面积等。调用对象中的函数就是向该对象传送一个消息,要求该对象实现某一行为(功能)。 2. 封装(encapsulation)与信息隐蔽(imformation hiding) 所谓“封装” ,就是把一个对象的一部分属性和功能对外界屏蔽起来,这样处理可以大大降低了操作对象的复杂程度。封装包含两方面的含义: ① 将有关的数据和操作代码封装在一个对象中,形成一个基本单位,各个对象之间相对独立、互不干扰; ② 将对象中某些部分对外隐蔽,只留下少量接口,以便与外界联系,接收外界的消息。这种做法称为信息隐蔽,有利于数据安全,防止无关的人了解和修改数据。 C++的对象中的函数名就是对象的对外接口,外界可以通过函数名来调用这些函数来实现某些行为(功能)。 3. 抽象(abstraction) 抽象的过程是对有关事物的共性归纳、集中的过程。抽象的作用是表示同一类事物的本质。 【例】一个三角形可作为一个对象,10个不同尺寸的三角形是10个对象。如果这10个三角形对象有相同的属性和行为,可以将它们抽象为一种类型,称为三角形类型。在C++中,这种类型就称为“类(class)”。这10个三角形就是属于同一“类”的对象。 类是对象的抽象,而对象则是类的特例,或者说是类的具体表现形式。 4. 继承与重用 如果在软件开发过程中想新建一个“类” B,它与已建立的 “类” A内容基本相同,只是增加一些属性和行为,这时只需在类A的基础上增加一些新内容即可。这就是面向对象程序设计中的继承机制,它可以简化程序设计的步骤。 【例】“白马”继承了“马”的基本特征,又增加了新的属性(颜色),“马”称为是父类或基类,而“白马”是从“马”派生出来的,称为子类或派生类。 由于C++提供了继承机制,可以很方便地利用已有的类建立新类,并可以重用已有类中的一部分甚至大部分,大大节省了编程工作量。这就是常说的“软件重用” 的思想(software reusability) 。 5. 多态性(polymorphism) 如果向几个相似而不完全相同的对象发出同一个消息,它们的反应各不相同,分别执行不同的操作。这种情况就 是多态现象。 【例】在Windows环境下,用鼠标双击一个文件对象,如果对象是一个可执行文件,则会执行此程序;如果对象 是一个文本文件,则启动文本编辑器并打开该文件。 C++中的多态性是指: 由继承而产生的相关的不同的类,其对象对同一消息会作出不同的响应。 多态性是面向对象程序设计的一个重要特征,可增加 程序的灵活性。 面向过程程序设计是 围绕功能进行的,一个功 能用一个函数来实现。所 有的数据都是公用的,一 个函数可以使用任何一组 数据,而一组数据又能被 多个函数所使用,如右图 8.3 所示。 在面向对象程序设计中,每一组数据都有特定的用途,它们是某种操作的对象,即一组操作调用一组数据。 程序设计者的任务有两个方面: ① 设计所需的各种类和对象,即决定把哪些数据和操

文档评论(0)

shuwkb + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档