面向对象程序设计的基本特点
抽象
对同一类对象的共同属性和行为进行概括,形成类。
先注意问题的本质及描述,其次是实现过程或细节。
- 数据抽象:描述某类对象的属性或状态(对象相互区别的物理量)。
- 代码抽象:描述某类对象的共有的行为特征或具有的功能。
抽象的实现:类。
抽象实例——钟表
数据抽象:
int hour,int minute,int second
代码抽象:
setTime(),showTime()
封装
将抽象出的数据、代码封装在一起,形成类。
目的:增强安全性和简化编程,使用者不必了解具体的实现细节,而只需要通过外部接口,以特定的访问权限,来使用类的成员。
实现封装:类声明中的{}
例:
class Clock {
public:
void setTime(int newH, int newM, int newS);
void showTime();
private:
int hour, minute, second;
};
继承
在已有类的基础上,进行扩展形成新的类。
多态
多态:同一名称,不同的功能实现方式。
目的:达到行为标识统一,减少程序中标识符的个数。
实现:重载函数和虚函数
类定义的语法形式
class 类名称
{
public:
公有成员(外部接口)
private:
私有成员
protected:
保护型成员
};
类成员的访问控制
公有类型成员
- 在关键字public后面声明,它们是类与外部的接口,任何外部函数都可以访问公有类型数据和函数。
私有类型成员
- 在关键字private后面声明,只允许本类中的函数访问,而类外部的任何函数都不能访问。
- 如果紧跟在类名称的后面声明私有成员,则关键字private可以省略。
保护类型成员
- 与private类似,其差别表现在继承与派生时对派生类的影响不同。