第10章 对象和类
面向对象编程OOP特性:
- 抽象
- 封装和数据隐藏
- 多态
- 继承
- 代码的可重用性
10.1 过程性编程和面向对象编程
采用过程性编程:首先考虑遵循的步骤,然后考虑如何表示这些数据。
采用OOP: 首先考虑数据,考虑如何表示数据,和考虑如何使用数据。
(首先从用户的角度考虑对象——描述对象所需的数据以及描述用户与数据交互所需的操作。完成对接口的描述后,需要确定如何实现接口和数据存储。最后,使用新的设计方案创建出程序。)
用户与数据交互的方式有三种:初始化、更新和显示数据——这就是用户接口。
10.2 抽象和类
处理复杂性的方法之一是简化和抽象。
在C++中,用户定义类型指的是实现抽象接口的类设计。
10.2.1 类型是什么
指定基本类型完成了三项工作:
- 决定数据对象需要的内存数量
- 决定如何解释内存中的位(long和float在内存中占用的位数相同,但将它们转换为数值的方法不同)。
- 决定可使用数据对象执行的操作或方法
10.2.2 C++中的类
类是一种将抽象转换为用户定义类型的C++工具,它将数据表示和操纵数据的方法组合成一个整洁的包。
定义类,一般来说,类规范由两个部分组成:
类声明:以数据成员的方式描述数据部分,以成员函数(被称为方法)的方式描述公有接口。
类方法定义:类声明提供了类的蓝图,而方法定义则提供了细节。
什么是接口
接口是一个共享框架,供两个系统交互时使用;
对于类,我们说公共接口。在这里,公众public是使用类的程序,交互系统由类对象组成,而接口由编写类的人提供的方法组成。
要使用某个类,必须了解其公共接口;要编写类,必须创建其公共接口。
- 类名首字母大写。
- 类就像一个结构声明,只是还包含成员函数,公有部分和私有部分等内容。
- 类的变量成为对象或实例。