面向过程
将问题进行规划,根据步骤将问题分解成一个个子问题,对其进行分别设计程序模块。模块间相互独立,通过调用或全局变量的方式进行有机联系。
程序=过程+调用
结构化的程序中各个模块之间的耦合(关联)度高,在规模庞大时会变得难以理解、难以扩充、难以查错,难以重用。
面向对象
以对象的形式对客观事实和行为进行概括,将数据和数据的操作方法放在一起形成的相互依存而又不可划分的整体。
对象的构成结构
对象=属性+方法
类*
即“类型”,抽象出一类具有共特征的对象的抽象概念,可以根据一个类实例化出对应的具有特征属性和方法的对象(对象又称作对应类的实例)
程序=对象+消息(消息统一概括对象间的信息传递)
面向对象程序设计的特征
- 抽象
- 封装
- 继承
- 多态
抽象
抽象的过程是将有关物体的共性归纳集中的过程。提取共同特征并且归类
封装
封装是只把数据和实现操作的代码集合起来放在对象内部,并且尽可能的隐蔽对象的内部细节。成为一个相对独立的模块。只留下少量接口,以便与外界联系。
继承
继承关系,在子代和亲代之间遗传优秀的特点,延伸自己独特的功能
多态
指的是不同的对象在收到相同的信息时,指向不同的操作,多态义指多种形态
C++中的多态:
编译时多态:重载
运行时多态:通过虚函数实现
面向对象程序设计的优点:
- 易维护(可读性)
- 质量高(重用性)
- 效率高(高效性)
- 易扩展(高内聚、低耦合)