常说C语言是面向过程的,Java是面向对象的,但对面向对象的理解似乎仅仅停留在类是对象的抽象,对象是类的实例这个概念中,即使用了JAVA语言在编程时还是按照步骤一步一步来写。这并不是真的面向对象。
什么是面向过程
面向过程的开发,就像是把大象放入冰箱一共需要三步一样。
- 打开冰箱门
- 放进大象
- 关上冰箱门
按部就班的做就可以。
什么是面向对象
面向对象的开发,考虑的是实体之间发生的事情。
仍然拿把大象放入冰箱为例的话,首先分解实体,再考虑会发生的事情。
- 分解实体:人、冰箱、大象
- 发生的事情:打开冰箱门、拿大象、放大象、关闭冰箱门
问题升级
但生活中问题并不是都如此简单,当问题升级,比如说一个人回家把大象放冰箱,另一个人回家把兔子放进冰箱,把大象拿出来。
如果用面向过程的方法,可以实现但是代码很冗余。
而用面向对象的方法,
- 分解实体:人、门、冰箱、大象、兔子
- 归类实体:人、设备、东西
- 发生的事情:打开设备、关闭设备、拿起东西、放下东西
很清楚,无论是门、冰箱、空调、洗衣机,我们都可以通过设备类new出来
大象、兔子、苹果、梨也可以通过东西类new出来
这样,以后问题再复杂也能够很轻松的实现它。
面向过程和面向对象的区别
在编程时,多考虑一点,如果还想放其他东西进冰箱呢,这一步大概就是抽象吧。
此处贴个链接,感觉把面向过程和面向对象说的很清楚
https://www.zhihu.com/question/27468564/answer/757537214