- 1、本文档共25页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C_第01讲-2面向对象的目标-1
面向对象的目标 C++语言是一个面向对象语言,它所支持的面向对象的概念容易将问题空间直接映射到程序空间,为程序员提供了一种与传统结构程序设计不同的思维方式。 学习C++语言面临两个问题,建立面向对象的思维方式;用C++语言编程?亦即需要学习面向对象的设计方法和使用C++语言的编程方法。 结构化程序设计思想 结构化又称为模块化,是指程序是由模块(过程、函数、子程序、分程序)组成的。 该类语言称为面向过程的语言。 基本思想: a. 将整个软件的功能逐步细化为多个小的功能; b. 每个小功能对应由一个模块来实现 c. 多个模块合作完成较大的功能,全部模块的合作完成整个软件的功能。 数据类型 低级语言对数据(存储单元)没有进行抽象,使用指令进行操作。 高级语言对数据(存储单元)进行抽象,使用运算符进行操作。 数据类型:一组数据和对数据的操作的抽象(操作通常不和数据放在一起)。 对数据类型的使用,是通过对类型的实例(实际例子,也称为实体)的使用来体现的 一般数据类型(内部类型):数据之间没有结构上、组织上或存储上的必然联系,并隐蔽了数据在存储单元中的基本表示。 结构数据类型(数据结构,用户定义类型):数据之间有必然联系,具有较高级别的抽象,由低级别的抽象实现,可以对基本表示的成分进行操作。 它们包括的数据与操作是分开的 抽象数据类型 抽象数据类型的特点: 允许在合适的语言单位建立与表示有关的操作,用于实现这个类型 对使用这个新类型的单位而言,该类型的表示是隐蔽的 类类型:包括的数据与操作是封装在一起的,在定义数据时,必须将对它们的操作也一起定义。 对象定义 面向对象语言的所谓“对象”,是将某组数据和对该组数据的一组基本操作封装在一起的实体。 对象与数据类型是有关系的,对象是一种抽象数据类型——类类型的实体。 对象是抽象数据类型的实现 抽象是一个系统的简化描述,它强调了系统的某些特性,而忽略了系统的其他特性。对于用户而言,所关心的是系统的功能,而不关心系统的组成和实现的细节。 抽象数据类型将数据和操作一起进行了定义和封装,我们将抽象数据类型抽象为能向外提供的功能的接口。 例子 class Date { ? 年,月,日的定义; ? 对日期数据的操作; ? }; ? 对象性质 作为克服软件复杂性的手段,在面向对象中,利用了如下对象的性质: (1) 将密切相关的数据和过程封装起来定义为一个实体。 (2) 定义了一个实体后,即使不知道此实体的功能是怎样实现的,也能使用它们(这一点类似库函数的情况)。 对象的核心概念 对象的程序设计语言,最核心的概念是数据封装、继承和多态性。 ? 数据封装将一组数据和与这组数据有关的操作集合封装在一起,形成一个能动的实体,称为对象。用户不必知道对象行为的实现细节,只需根据对象提供的外部特性接口访问对象。 例子 class Font { ? private: ? 字形数据; ? public: ? 操作字形数据的成员函数; ? }; ? 在这样建立的类 Font 中,能确保私有的字形数据只能由类中的成员函数进行访问和处理。 封装 封装是相对的: 类内无封装:成员之间都可见; 类外才有封装: 类外不可见:数据定义; 操作的实现; 类外可见: 操作的原型(接口) C++的 封装 类内无封装; 类外不可见:私有段数据定义; 私有段操作的原型(接口) 私有和公有段操作的实现; 类外可见: 公有段数据的定义 公有段操作的原型(接口) 继承 继承是面向对象语言的另一个重要的概念。在客观世界中,存在着整体和部分的关系(a part of )、一般和特殊的关系(a kind of ),继承将后者模型化。 在面向对象语言中,类功能支持这种层次机制。除了根结点外,每个类都有它的超类(superclass),又称父类或基类。除了叶结点外,每个类都有它的子类(subcalss),又称派生类。 一个子类可以从它的基类那里继承所有的数据和操作,并扩充自己的特殊数据和操作。 基类抽象出共同特征,子类表达其差别。有了类的层次结构和继承性,不同对象的共同性质只需定义一次,用户就可以充分利用已有的类,符合软件重用的目标。 多态性 面向对象另外一个核心概念是多态性。所谓多态,是指一个名字,有多种语义;或更特殊:一个界面,有多种实现。利用重载(或称为超载)实现
文档评论(0)