首页 > 代码库 > JAVA的面向对象思想

JAVA的面向对象思想

Java的面向对象思想如何树立

要知道Java面向对象的思想,那么我感觉应该对比着来学习。

首先我们要区分一下“基于对象”和“面向对象”的区别。

基于对象,通常指的是对数据的封装,以及提供一组方法对封装过的数据操作。就比如 C 的 IO 库中的 FILE * 就可以看成是基于对象的。

而面向对象呢,则在基于对象的基础上增加了多态性。多态就是可以用统一的方法对不同的对象进行同样的操作。当然,这些对象不能完全不同,而需要有一些共性,只有存在了这些共性才可能用同样的方法去操作它们。就比如A 和 B 在继承关系上都有共同的祖先 R ,那么我们就可以把 A 和 B 都用对待 R 的控制方法去控制它们。

 

其实这里面向还是有两个概念,面向过程和面向对象,这个可能就会很容易理解了

面向对象是相对面向过程说的。

简单来说,区别就是一个是make a dog bark,一个是a dog barks:

make bark(dog)

dog.bark()

 

面向对象的做法确实是把属性和功能封装起来,但是其核心是归类和抽象。

把相关的属性和功能集中起来,把可以分离的部分隔绝开来,从而把复杂的业务逻辑切割成互相 之间可以相对独立的部分,降低开发的难度。

所以面向对象绝对不仅仅是弄一个class然后把一堆东西往里面塞,真正重要的是判断需要构造 哪些class,它们之间的关联,以及把什么东西往哪一个里面塞。


还有一个更简单的例子

给你一个任务,你要思考怎么做。

如果你的思维方式是:我先做什么,再做什么……这叫面向过程

如果思维方式是:我先做一个什么东西来做这件事,再做一个什么东西来做那件事,然后它们怎 么相互配合……这叫面向对象


再通俗一点就是,面向对象是有个对象会给你做这件事,你只需要调用该对象就能完成这件事。而面向过程却是你得自己做。

JAVA的面向对象思想