面向对象和面向过程的区别
- 面向过程
- 把一个软件系统看成一系列的过程(流程),关注过程中的因果关系具体怎么实现。没有独立体的概念,各个过程环环相扣。
- 优点:对于业务逻辑比较简单的程序,可以达到快速开发,前期投入成本较低。
- 缺点:很难解决非常复杂的业务逻辑;软件元素之间的耦合度非常高,只要其中一环出问题,整个系统受到影响,导致最终的软件扩展力差;由于没有独立体的概念,所以无法达到组件复用。
- 面向对象
- 把一个软件系统看成各个对象协作组成的整体,关注各个对象可以完成什么功能,以及对象之间怎么进行协作,而不关注对象的功能具体是怎么实现的。对象就是独立体的概念,各个对象之间关联程度很小。
- 优点:耦合度低,扩展力强;更符合人的思维方式,更容易解决现实世界当中更复杂的业务逻辑;组件复用性强
- 缺点:需要进行独立体的抽取,大量的系统分析与设计,前期投入成本较高。
面向对象的特征
-
封装
-
继承
-
多态
-
采用面向对象的方式开发一个软件,生命周期当中:
-
面向对象的分析(OOA)
-
面向对象的设计(OOD)
-
面向对象的编程(OOP)
-
类和对象的概念
-
类
- 在现实世界中,一系列对象之间具有共同特征,进行抽象总结出一个模板,这个模板就称为类
- 类在现实世界当中是不存在的,是一个概念模板,是人类大脑思考抽象的结果。
-
对象
- 对象是现实世界中真实存在的个体
-
类和对象的关系
-
将类实例化就得到了对象,因此对象又称为类的一个实例(instance)
-
一系列对象经过抽象出共同特征就得到了类
-
类描述的是对象的共同特征,这个特征可以从静态和动态两个角度来反映,即状态和行为,在程序中称为属性和方法。访问特征时,必须先创建对象,再通过对象去访问特征。因为这个特征具体到一个对象身上时,最终的结果可能是不同的
类{ 属性; //描述对象的状态信息 方法; //描述对象的动作信息 };
-
-
面向对象软件开发的过程:
- 程序员先观察现实世界,从现实世界当中寻找对象
- 寻找了N多个对象之后,发现所有的对象都有共同特征
- 程序员在大脑中形成了一个模板【类】
- Java程序员可以通过java代码来表述一个类
- Java程序中有了类的定义
- 然后通过类就可以创建对象
- 有了对象之后,可以让对象直接协作起来形成一个系统。