Java面试一百道题目(第一题)

1,什么是面向对象,谈谈你对面向对象的理解。
思路:用面向过程和面向对象做对比来突出什么是面向对象。

:高级语言分为,面向对象语言和面向过程语言,面向过程语言,距离来说,我需要完成一个洗衣服的操作,那么我需要把洗衣服的每个步骤都设计好,衣服放入洗衣机,加水,加多少水,放入洗衣液,洗衣机需要洗多久,洗衣机左转多少下,右转多少下,这些所有都完成以后,开始脱水,脱水完成以后,一个“简单”的洗衣机洗衣的步骤就完成了,整个过程实现都需要我们去实现,每个细节都需要去兼顾,这就是面向过程语言,而用面向对象语言来解决这个事情的话,我们会创建一个洗衣机的对象,它里面有这些方法,我们只需要一步一步调用就行。

面向过程实现
//我要开始放入衣服了
放入衣服();
//我要开始加水了,我需要加多少水,根据衣服来定
加水();
//我要开始放入洗衣液了,我需要放入多少洗衣液
放洗衣液();
//我要开始。。。
xxx();
//。。。
结束();
//完成

面向对象实现
//我跟洗衣机这个对象讲,我想要洗衣服,它给我一个洗衣服的方法,我把衣服的件
//数,要的水量,洗衣液的多少作为参数传入,于是乎这个洗衣服的方法开始执行了,
//最后根据里面设计的算法完成了所有操作。
洗衣机 美的洗衣机 = new 洗衣机();
美的洗衣机.洗衣服(int 衣服数量,int 水量,int 洗衣液);
结束();
//完成

两者之间的差别在于,一个注重方法步骤的实现,而另一个在于你想要实现这个方法,你只要找到那个对应的类调用方法来实现就行。

我记得一个美剧说过,一个人为了发财想要去一个地方去挖石油,使出浑身解数,赚的还没有投入的多,他心灰意冷的回家了,在跟家里人聊起这件事的时候,他儿子问道,为什么不去找这方面的专家来挖石油呢,于是这个父亲找到了挖石油的专家,也成功根据专家的指示,挖到了石油。

在这个故事里面,一开始使用自己浑身解数的挖油人就是面向过程语言的典范,而后面找专家来解决这件事,用的就是面向对象的思想。