面向对象编程
1. 面向对象编程风格与面向过程编程风格
面向过程编程:
我在学习c++之前,曾学习过C语言,C语言就是一种面向过程的编程语言。
所谓面向过程编程,即采用自顶而下的设计方法。如果我们把实现一个事务需要解决的问题成为MainProblem,在实现过程中,我们需要将MainProblem拆解为多个problem,来逐个解决,这种方法被称作函数分解法。
自顶而下的设计的优点是非常直观且条理清晰,但是也有致命缺陷,特别是在软件的开发与维护过程中,当程序的需求发生改变,需要对其中的某个problem进行修改,可能会牵一发而动全身,需要付出很高的维护成本。
面向对象编程:
基本思想:
面向对象程序设计模拟自然界认识和处理事物的方法,将数据和对数据的操作封装为一个相对独立的整体——对象,同类对象可抽象出共性来构成类。
在面向对象编程中,构成模块的基本单元是类而不是面向过程编程中的过程。
基本概念:
类是对象的集合体,是具有相同属性行为的一组对象的集合,它为属于该类的所有对象提供了统一的抽象描述,其内部包括属性和行为两个主要部分。一个类中的数据通常只能通过本类的方法进行处理,这些方法称为该类与外部的接口,对象之间通过消息进行通信。
消息 对象之间相互作用所传递的信息称为消息。
主要特性:
封装性:封装是面向对象编程最基本的特性,就是把数据(属性)与函数(操作)合成一个整体,这是用类与对象实现的。
继承性:继承是根据一个类型定义另一个类型的能力。它是面向对象程序设计使代码可以复用的最重要的手段,它允许程序员在保持原有类特性的基础上进行扩展,增加功能,从而在已有类的基础上产生新的类。
多态性:多态表示在不同时刻有不同的形态;即同一个消息被不同对象接收时,产生不同结果,即实现同一接口不同方法。