c++-类与对象

1.抽象

面向对象方法中的抽象是指对具体问题即对象进行概括,抽出一类对象的共性并加以描述的过程。面向对象的软件开发中,首先应该对要解决的问题抽象成类,然后才是解决问题的过程。抽象有两个方面:数据抽象和行为抽象。数据抽象是描述某类对象的属性或状态,行为抽象是描述某类对象的共同行为或共同功能。 举个例子,要实现有关时钟的程序,首先要对时钟进行抽象。时钟有时、分、秒,我们用三个整型变量来存储,这就是数据抽象。时钟有显示时间和设置时间等功能,这就是行为抽象。用C++语言描述就是:

1
2
3
4
5
时钟(Clock):
数据抽象:
int Hout; int Minute; int Second;
行为抽象:
ShowTime(); SetTime();

上面并不是真正的C++代码,只是简单的列出了数据成员和函数成员的代码片段。

2.封装

把抽象出来的数据成员和函数成员结合形成一个整体,就是封装。封装的时候,我们可以把一些成员作为类和外界的接口,把其他的成员隐藏起来,以达到对数据访问权限的控制,这样可以使程序的各个部分改变时最低程度的影响其他部分,程序会更安全。 把数据和函数封装为一个可复用的模块,开发时可以利用已有的成果而不必每次都重复编写。我们只需要通过类提供的外部接口访问模块,并不需要知道内部的细节。C++中就是利用类的形式来实现封装的。 时钟的具体封装形式及时钟类:

1
2
3
4
5
6
7
8
 class  Clock                // class是关键字 Clock是类名
{
public: // 提示下面是外部接口
void SetTime(int NewH,int NewM,int NewS); // 行为,函数成员
void ShowTime(); // 行为,函数成员
private: // 特定的访问权限
int Hour,Minute,Second; // 属性,数据成员
};

这是一个完整的类的声明。它声明了一个名为Clock的类,其中的数据成员和函数成员是前面分析得到的抽象结果。关键字public和private是用来指定成员的不同访问权限的,至于具体访问权限的问题后面课程中会讲到。声明为public的两个函数为类提供了外部接口,外界只能通过这两个接口跟Clock类联系。声明为private的三个整型数据是类的私有数据,外部无法直接访问。我们可以看到,这种访问权限的机制有效实现了对数据的隐藏。

3.继承

这些都可以通过继承来实现,C++语言提供了类的继承机制,让我们软件开发者可以在保持原有特性的基础上,进行更具体、更详细的说明。通过继承我们可以利用之前已经有的程序模块,还可以添加一些新的数据和行为,这在很大程度上提高了程序的复用性,大大节约开发成本

4.多态

多态就是类中具有相似功能的不同函数使用同一个名称。利用多态可以对类的行为再抽象,抽象成同一个名称的功能相似的函数,减少程序中标识符的个数。

  • 版权声明: 本博客所有文章,未经许可,任何单位及个人不得做营利性使用!转载请标明出处!如有侵权请联系作者。
  • Copyrights © 2015-2020 翟天野

请我喝杯咖啡吧~