C++语言程序设计基础知识.docVIP

  • 16
  • 0
  • 约3.16万字
  • 约 17页
  • 2017-11-24 发布于四川
  • 举报
第12章 面向对象程序设计与C++基础 程序设计语言是编写程序的工具,程序设计语言的发展反映了程序设计方法的演变过程。随着计算机技术的日新月异,要求软件具有良好的可重用性和可扩展性,这就导致程序设计方法从结构化程序设计方式转变到面向对象程序设计方式。C语言能够很好地支持结构化程序设计,C++不仅兼容C,同时具有面向对象的特征,因此充分支持面向对象程序设计。 12.1 面向对象程序设计的基本概念 面向对象技术变革了软件设计的传统方法。解决结构化程序设计不足的方法就是限制数据的存取权限,面向对象程序设计把数据和使用此数据的过程封装成一个类(类可看成是一个基本数据类型)。数据的封装和隐藏一方面使得内部数据不被破坏,另一方面程序具有良好的可读性和相对独立性。类的继承机制不仅提高了代码的可重用性,降低了软件开发难度和开发周期,同时程序的修改变得容易,软件结构更加稳定,软件的可维护性大大提高。 面向对象软件系统由类的层次结构组成,类的具体实例叫做对象,对象之间通过彼此的联系,共同实现程序的功能。如图12-1所示。 数据方法 数据 方法 数据 方法 数据 方法 数据 方法 类的层次结构 图12-1 面向对象软件系统 面向对象程序设计方法提出一些全新的概念:对象、类、封装、数据隐藏、继承和多态性等。多态性、数据封装和继承共同构筑了面向对象程序设计的三大机制。 属性:颜色、进水量、洗涤指示操作方法:进水 排水 洗涤 甩干 属性:颜色、进水量、洗涤指示 操作方法:进水 排水 洗涤 甩干 图12-2 洗衣机类示意图 面向对象的方法学认为,客观世界由对象组成,对象有自己独特的特征和行为,两者密不可分。 面向对象的软件技术中,类是将不同类型的数据和与这些数据相关的操作封装在一起的集合体。对象可看成类的具体实例。图12-2描述了洗衣机类。 【例12-1】 在现实世界中,钢笔具有笔帽、笔体、笔尖、颜色、形状等属性特征,钢笔具有的行为是书写、灌钢笔水。钢笔作为一个整体,具有独特的属性和行为,它们将被抽象成一个钢笔类。这种自成一体性称为封装性。而你正在使用的钢笔,可以看成钢笔类中的一个具体实例。我们不必关心钢笔的内部结构及实现细节,仅利用钢笔对外提供的操作,即外部接口,就可以方便地使用钢笔。 【例12-2】 对于整型类型的数据,可以定义对它的四则运算,这是整型数据具有的行为,四则运算与整型数据封装成一体,命名为“int类”。字符型运算和逻辑运算不可以访问、修改int类中的数据,只有int类中定义的四则运算才能对其进行操作。显然,我们也无需知道四则运算是如何定义的,int类对外界提供的操作接口是“+”、“-”、“*”、“/”,可以直接利用这些接口实现整数的四则运算,这叫做数据的隐藏性。 2. 数据的封装和隐藏 封装强调的是数据和行为的自成一体性,也就是将数据和操作数据的函数代码进行有机的结合,形成“类”。封装具有如下意义: 1) 面向对象的程序表现出强烈的可读性和独立性。 2) 程序不依赖数据结构的改变,具有良好的可维护性。当数据结构改变时,只有类中对数据进行操作的函数需要修改,程序的其他部分不受影响。 3) 对数据起到一定的保护作用。只有类中的函数才可以修改类中的私有数据。 隐藏是指类把对数据的操作信息隐藏在内部,只提供对象对外的操作接口,用户只能看见对象封装接口上的信息,这样可以保护内部数据不被破坏,同时使用者使用起来非常方便,并可以容易地将其扩展成新的产品。 3. 类的继承 类的继承是指新的派生类可以继承原有父类的全部数据和操作的机制,并可以在派生类中添加新的数据和操作方法。新的派生类又叫子类,原有父类又叫基类或超类。例如,想生产敞篷汽车不用从草图开始,只需要对原有的产品添加新的敞篷功能,这样就会快速开发出一种新的产品。利用类的继承特性,可以非常方便地产生一系列具有相似特征的对象。 再看一个类继承的例子。在小学,我们学过数的四则运算,到中学会进一步学到对数、指数等运算,到大学将学到微积分等内容。我们每一次的进步都将继承已学过的知识,在已有的基础上不断扩充新的知识。 4. 消息 对象之间通过消息相互联系,也是通过消息让某一个对象完成一定的功能。例如,给洗衣机对象发洗涤的操作信号,洗衣机就会执行洗涤的功能。 在面向对象的程序设计中,消息名就是在对象中定义的操作(或称方法),给对象发消息,就是让对象执行某一操作,使对象具有行为的能力。如图12-3所示。 边长、顶点 边长、顶点 求周长 求面积 发消息 求面积 执行操作 求面积 在C++中的表示: A ? 求面积(边长,顶点坐标) 图12-3 消息机制 5. 多态性 多态性表示同一种东西有多种形态。例如,与对方通信,这个动作将有多种表现形态,如采用写信的方式、打电话、

文档评论(0)

1亿VIP精品文档

相关文档