由于C++是面向对象的程序设计语言,因此了解一下“面向对象的程序设计”是必须的。这篇文章主要总结了面向对象的程序设计的基本概念以及面向对象的程序设计的基本特征,作为初学C++的参考

一、什么是面向对象的程序设计

我们都知道以前学习的C语言是面向过程的程序设计,它是由过程定义以及过程调用组成的,(简单来说,过程就是实现一个算法的一段代码)

而C++是面向对象的程序设计,它是由对象和消息组成。对象是面向对象程序的基本元素。

二、面向对象程序设计的基本概念

基本概念有四个,即:对象、类、消息、方法

1.对象

在现实世界中,我们可以把任意一个人或物当作是一个对象。我们将这个概念抽象到面向对象程序设计中,对象就是描述其属性的一个数据和对这个数据实施的一些操作的组合被封装在一起的统一体。

2.类

类即是对象的一个抽象总体,这些对象具有相同的属性和行为。就例如:在实际生活中,我们所叫的张三、李四、王五,他们都可以被抽象为一个“人”类,而他们自身即为一个对象。因此,我们可以看出对象和类有这样的关系:类是对象的综合抽象,而对象是类的一个具体实例。

3.消息

消息是一个对象(发送者)对另一个对象(接收者)发出的“请求”。当对象接受到这个消息时,就可以调用有关方法,实现相关操作。

消息具有3个性质:

(1)同一个接收者可以接收不同形式的消息并作出不同的响应;

(2)不同形式的消息可以传送给不同的对象,所作出的响应也可以不同;

(3)对象对消息的相应并不是一定的,可以响应也可以响应。

4.方法

在C++中,方法类似于C中的算法,它就是一段实现某个操作的代码(相对于C++中成员函数的函数体)。消息和方法有如下的关系:对象根据接收到的消息,调用相应的方法,从而才能响应相应的消息。

三、面向程序设计的基本特征

基本特征有抽象、封装、继承、多态等。

1.抽象

抽象是通过特定的对象抽取共同性质后形成概念的过程。在面向对象程序设计中,抽象包括两方面:数据抽象和代码抽象。

2.封装

封装是将数据以及实现操作的代码集中起来放在对象的内部,并且尽可能隐藏对象内部的细节。

在这里,封装有两层含义:

(1)将有关数据和操作代码封装在一个对象中,各对象之间相互独立、互不干扰;

(2)将对象中的相关数据以及操作代码隐藏,只留下部分接口与外界联系,接受外界消息。(此种做法称为信息隐藏)      

3.继承

继承所表达的是对象与类之间的关系,这样的关系使某一个类可以继承另一个类的特征和能力。

继承的特征体现如下:

(1)共享性:数据和操作代码共享

(2)类之间有差别或者新增部分

(3)层次结构

*基类和派生类:

假如有A和B两个类,若类B继承了类A,则类B包含了类A的特征(包括数据和操作),并且同时类B还可以增加自己所特有的属性,因此,A就被称为父类或基类,B就称为子类或派生类

*直接基类和间接基类:

如果有B是从A派生而来,而C又是由B派生而来,那么A就是B的直接基类,是C的间接基类。这样也就构成了类的层次结构。C同时继承了A和B的所有特征。

*单继承和多继承:

单继承:一个派生类只有一个基类

多继承:一个派生类有多个基类

4.多态

多态性是指不同的对象接收到相同消息是所产生的不同行为。

C++支持两种多态性:

(1)编译时的多态性,通过重载实现

(2)运行时的多态性,通过虚函数来实现



本文转载:CSDN博客