OOP思想
大约 3 分钟
OOP思想
类的设计
思想与设计
面向对象编程(OOP)
- 是什么
- 是一种特殊的、设计程序的概念性方法,是“思想”
- C也能用(用结构来模拟类)
- C++改进(引入类和一些类的特性)C语言,使这种方法更容易
- 重要的OOP特性(封装并只是OOP的特性之一,并不是其全部或内核)
- 抽象:体现于抽象数据类型、抽象基类
- 封装和数据隐藏:体现于私有成员
- 多态:体现于继承多态、模板类
- 继承
- 代码的可重用性:体现于各种继承、包含、嵌套
- OOP特性的具体表现
- 封装的具体表现
- 数据隐藏(防止直接访问数据,用户无需了解数据是如何被表示的)
- 将类函数定义和类声明放在不同的文件中
- 隐藏机理、强调实质
- 多态 - 运算符重载
- 封装的具体表现
设计过程和程序结构(设计过程和程序结构分别对应)
- 设计过程
- 从用户角度考虑对象——描述所需数据和与数据交互的操作(类声明头文件)
- 然后确定如何实现这些接口和数据存储(类实现代码)
- 最后使用设计方案创建出程序(客户代码)
- 程序结构:可以分成三部分(原型、定义、调用,三者分离),这种组织方法模块设计与OOP设计一致
- 头文件:包含结构声明和使用这些结构的函数的原型
- 源代码文件1:包含与结构有关的函数的定义代码
- 源代码文件2:包含调用与结构相关的函数的代码
- 头文件设计
- 详细参见模块系统一章
- 函数/类模板声明:不能放实现文件,其不能被独立编译
- 内联函数定义:不能放实现文件,其不能被独立编译
- 工具包思想
- 哪怕是自己设计类给自己使用,也应当做是两个人——类编写者和类使用者,两者拥有不同的权限
- 类编写者:类设计者,能操作类的私有和隐藏部分
- 类使用者:自己或者其他使用类库的别人,只能操作类的公有部分
类与结构不同的是
- 类成员默认是私有的,结构成员默认是公有的
- 通常用类来实现类描述
- 用结构用来只表示纯粹的数据对象(常被称为老式数据(POD,Plain Old Data)结构)
其他
- 规范
- 类名首字母大写
- 技巧
- 使用状态成员
简概
类似于strut、enum,需要先声明类名
- struct关键字:声明结构名,再用结构名定义结构变量
- enum关键字:声明枚举名(以及枚举量),再用枚举名(和枚举量)定义枚举变量
- class关键字:声明类名,再用类名定义类变量(一般不叫类变量,叫类
对象
/类实例
)