面向过程:指的是把问题分解成为一个一个步骤,每个步骤用函数实现,依次调用即可。面向过程思想顾名思义其实就是面向解决问题的步骤进行编程
面向对象:指的是将问题分解成一个一个步骤,对每个对象进行相应的抽象,形成对象,通过不同兑现的调用,解决组合问题;也就是说在进行面向对象编程的时候,要把属性、行为等封装成对象,然后基于这些对象的能力进行业务逻辑的实现。面向对象思想就是分析参与问题的有哪些实体,这些实体应该有的属性和方法,通过调用这些实体的属性和方法解决问题。
面向对象的思想:做一件事情,找一个能解决这个事情的对象,调用对象的方法,完成事情。
一、区别简述
面向过程(Procedure Oriented):以过程为核心,强调事件的流程、顺序,如:C语言。
面向对象(Object Oriented):以对象为核心,强调事件的角色、主体,如:C++、Java。
二、案例
小明起床上班这件事;
从面向过程的角度看就是:1、起床;2、刷牙洗脸;3、开车上班。
从面向对象的角度看就是:主人公:小明;拥有的财产:床、牙刷、车;小明可以做什么:从床上站起来、刷牙、开车
面向过程:通过分别调用某个具体方法来完成一件事,每一步都是一个过程,整个过程循环渐进。
优点:根据事情的目的分解出过程,然后一步步实施;对于不复杂的事件执行效率快。
缺点:只关注眼前事件的实现。
面向对象:先定义一个类别Person,列出属于该类别的属性及功能,new出一个实例xiaoMing,调用实例的方法work,在调用实例的方法中大家可以看到其内部也是一种面向过程的实现,所以面向对象与面向过程并不是互斥的,面向对象内可以有面向过程的设计。
优点:不仅关注眼前的事件实现,也关注未来可能发生的事件,比如要实现‘小明开发送朋友’。只需要在Person类里面加入sendFriend方法就可以。具有高度的拓展性(体现出对象的多态性)和复用性(对于类似的人,动作,直接new一个对象传入不同的参数即可),特点是继承、封装、多态。
缺点:跟面向过程正好相反,如果只是单一的功能实现,面向对象的设计思路就显得过于繁琐。