# 面向对象

## 四大特性

1. 封装：客户请求（或消息）是使对象执行操作（或方法）的唯一方法，操作又是对象改变内部数据的唯一方法。
2. 抽象
3. 继承
4. 多态

## 面向对象 vs 面向过程

面向对象编程与面向过程编程的区别

## 面向对象分析+设计+编程

面向对象设计方法学支持许多设计方法：可以写出一个问题描述，挑出名词和动词，进而创建相应的类和操作；可以关注系统的协作和职责关系；也可以对现实世界建模，再将分析时发现的对象转化至设计中。至于哪一种方法最好，并无定论。

1. 面向对象分析（OOA）：需求分析
2. 面向对象设计（OOD）：代码层面的设计，输出的设计结果是类
   * 划分职责并识别出有哪些类
   * 定义类及其属性和方法
   * 定义类之间的交互关系
   * 组装类并提供执行入口
3. 面向对象编程（OOP）：将设计的结果翻译成代码的过程
