面向过程程序设计方法(结构化程序设计):自顶向下,逐步求精。复杂问题按功能划分为子模块。系统是实现模块功能的子程序的集合。
POP:算法+数据结构 = 程序
数据和过程分离,代码的可重用性差。
面向对象程序设计:通过对象的属性和行为描述对象。类定义了同类对象的公共属性和行为。类 = 数据结构 + 对数据进行操作的函数
OOP:把复杂的系统分解成多个更小的对象组成。这些对象可在其他程序使用。
组装性、可重用性
OOP的基本特征:抽象、封装、继承、多态
抽象:数据抽象和行为抽象,描述对象的共性。
数据抽象:某类对象共有的属性和状态
行为抽象:某类对象共有的行为特征或能力
重点:关注与目标相关的本质特征,关注同类之间的共性。
封装:将抽象得到的属性和行为有机结合,组成整体。C++利用类实现对对象的抽象和封装。
尽可能隐藏对象的内部细节,仅通过一些可控的接口与外部交互,放在外部随意获取或更改内部数据。(独立性、安全性)
避免外部错误对对象内部的影响以及对象内部错误对外部的影响。
访问权限控制符:private(仅本类内部成员访问或调用),public(允许本类或其他类通过对象访问或调用),protected(本类或派生类的成员函数访问或调用)
继承:一个新类可以从已有的类派生而来,新类继承原有类的属性和行为,基于特性,可以修改原有类的行为,增加新的属性和行为。
多态: 不同对象在接受到相同的消息(命令)时会有不同的响应。(重载、虚函数机制)