面向对象的程序设计的特点:
抽象、封装、继承和多态。
抽象
指对具体问题(对象)进行概括,抽出一类对象的公共性质并加以描述。
包含两个方面,分别是数据抽象和行为抽象。
数据抽象:描述某类对象的属性和状态
行为抽象:描述某类对象的共同行为或功能特征。
举例:当把人作为一个类的时候,人的属性如名字、年龄、性别等就是数据抽象,而比如工作、学习、吃饭睡觉这些属于行为抽象。
封装
将抽象得到的数据和行为相结合,形成一个有机整体。也就是将数据和函数进行有机结合,形成类。
继承
允许程序员在保持原有类特性的基础上,进行更加具体、详细的说明
多态
一段程序能够处理多种类型对象的能力。
类
语法形式
class 类名称
{
public:
外部接口
protected:
保护型成员
private:
私有成员
}
public、protected,private分别表示对成员的不同访问权限。在类中可以只声明函数原型,函数的实现可以在类外定义,具体定义语法见学习笔记18.
类成员的访问控制
- 公有类型成员:定义了类的外部接口,跟在public关键字后,任何外部函数都可以访问公有类型的数据和函数
- 私有类型成员:只能被本类的成员函数访问,来自类外部的访问都是非法的。如果紧跟在类名称后面声明私有成员,则关键字private可以省略。
- 保护类型成员:性质与私有类型成员相似,区别在于继承过程中产生的新类影响不同。
类内初始值
- 可以为数据成员提供一个类内初始值。
- 在创建对象时,类内初始值用于初始化数据成员。
- 没有初始值的成员将被默认初始化。
类成员的访问形式
- 类中成员访问:直接使用成员名访问
- 类外成员:使用对象.成员名访问public成员