使用面向对象语言也有几年了,对于面向对象也有自己的一些体会和感悟,但是对两者的概念和区别理解的不是非常清晰,最近准备系统的梳理一下java基础,对这块也好好的理解一下。
面向对象
面向对象编程: 将事物高度抽象化的编程模式.
将问题分解成一个一个步骤,对每个步骤进行相应的抽象,形成对象,通过不同对象之间的调用,组合解决问题。
就是说,在进行面向对象进行编程的时候,要把属性、行为等封装成对象,然后基于这些对象及对象的能力进行业务逻辑的实现。
对象: 是实实在在存在的, 一切皆对象! 对象是类的一个实例.
类: 是具有相同属性和行为的对象的集合, 是蓝图和模板, 是一种抽象的概念.
面向过程
面向过程编程: 自顶而下的编程模式.
把问题分解成一个一个步骤,每个步骤用函数实现,依次调用即可。
就是说,在进行面向过程编程的时候,不需要考虑那么多,上来先定义一个函数,然后使用各种诸如if-else、for-each等方式进行代码执行。
举例说明区别
同样一个象棋设计.
面向对象:创建黑白双方的对象负责演算,棋盘的对象负责画布,规则的对象负责判断,例子可以看出,面向对象更重视不重复造轮子,即创建一次,重复使用.
面向过程:开始—黑走—棋盘—判断—白走—棋盘—判断—循环。只需要关注每一步怎么实现即可.
优劣对比
优势 | 劣势 | |
---|---|---|
面向对象 | 易维护、易复用、易扩展、解耦、灵活 | 性能低、消耗大(类调用时需要实例化,开销比较大,消耗资源) |
面向过程 | 性能高、消耗低 | 没有面向对象易维护、易复用、易扩展、灵活 |