面向对象和面向过程的区别
面向对象和面向过程的区别
区别简述
面向过程(Procedure Oriented):以过程为核心,强调事件的流程、顺序,如:C语言。
面向对象(Object Oriented):以对象为核心,强调事件的角色、主体,如:C++、Java。
区别
1.思路不同
2.特点不同
3.优势不同
面向过程是直接将解决的问题分析出来,然后用函数将步骤一步一步实现,然后再一次调用就可以了;
面向对象是将构成问题的事物,分解成若干个对象,建立对象的目的不是为了完成一个步骤,而是为了描述某个事物在解决问题过程中的行为。
面向过程思想偏向于我们做一件事的流程,首先应该做什么,其次做什么,最后做什么。
面向对象思想偏向于了解一个人,这个人的性格,特长是怎么样的,有没有遗传到什么能力,有没有家族病史。
面向过程是一种以过程为中心的编程思想,面向过程编程是基于冯诺依曼模型的。
面向过程优点
流程化使得编程任务明确,在开发之前基本考虑了实现方式和最终结果,具体步骤清晰,便于节点分析,效率高,面向过程强调代码的短小精悍,善于结合数据结构来开发高效率的程序。
面向过程缺点
需要深入的思考,耗费精力,代码重用性低,扩展能力差,后期维护难度比较大。
面向对象优点
易维护,易扩展,易复用,有封装、继承、多态的特性、更容易设计出耦合的系统。
面向对象缺点
性能没有面向过程高
如何理解面向对象的三个特性
封装
将属性和方法都放在一个类里,而且还可以通过访问类的权限属性给区分开,用户不需要知道我这个类中的属性和方法到底怎么写的,直接调用使用即可。更加安全,不想要释放的功能,可以直接做成私有。
继承
就是把之前已经实现好的代码或者方法通过继承的方法拿过来使用,能节省大量的代码量,符合代码设计里面的继承优秀代码特性。
多态
由于可以继承多个类,能够组合成多种特性,但多态的关键是覆盖,就是同一个方法可以用不同的方式去实现,展现出多态性,就是方法和属性有多种形态。