黑马程序员技术交流社区

标题: 编程语言中面向过程和面向对象的区别是什么? [打印本页]

作者: 依米阳光    时间: 2014-11-21 11:31
标题: 编程语言中面向过程和面向对象的区别是什么?
本帖最后由 依米阳光 于 2014-11-22 21:26 编辑

小白求教:对于面向对象和面向过程的定义不是很明白,还有他们的区别在哪?最好能用代码中的例子给予说明,谢谢!
作者: 完美是芬    时间: 2014-11-21 15:10
面向过程就是将编程当成是做一件事,要按步骤完成,每一步就是一个过程。
面向对象就是将编程当成是一个事物,对外界来说,事物是直接使用的,不用去管他内部的情况。
作者: wf111sxwf    时间: 2014-11-21 17:25
在没有计算机的时候 我们要进行一些运算时,必须自己来进行运算的每一步动作,现在我只要把我要的运算输入到计算机上 我就可以的到我想要的结果。至于计算机是怎么算的 我不用管,  计算机就是一个对象。  
作者: Eagle    时间: 2014-11-21 19:31
面向过程是自己做,也就是实施者。
面向对象是自己让别人做。是指挥者。
作者: 依米阳光    时间: 2014-11-22 03:17
如果说这是一道面试题,面试经理就是这么问的,觉着这么回答是不是有点太模糊了,还有他们之间的差别也没有说啊
作者: LOVE你的ME    时间: 2014-11-22 10:33
代码举例没必要,重要的是理解这种思想。
例子:你要开车去去旅游。
面向过程:打开车门,上车,挂档,踩油门,车开动,到地方你踩刹车。都是你自己在按照这个过程的顺序在做。(你平常做事情是不是要想我先干什么接下来干什么)
面向对象:车开 、到地方车停。这时候你就是一个指挥者,指挥车开、车停,因为车有启动和停的功能,你只调用车的启动和停止功能就行,不用管车是怎么启动的、怎么停下的。(就像你是老板对两个人说你扫地,你擦桌子,你只需要调用,没必要知道是怎么扫的地怎么擦的桌子)
我的理解就这样,很多例子我写的简单例子。面试题什么的举例最好了。

作者: Eagle    时间: 2014-11-22 10:50
依米阳光 发表于 2014-11-22 03:17
如果说这是一道面试题,面试经理就是这么问的,觉着这么回答是不是有点太模糊了,还有他们之间的差别也没有 ...

面试时,可以就地取材。比如,说面试官,或者花盆。
为什么招聘,就是在找一个对象。
如果他自己写代码,编译、调试、运行。改进、优化。那就是面向过程了。
但是他找了一个程序员你,因为你具备写代码、编译、调试、运行。改进、优化这些功能。他只需要叫你做就OK了。这就是面向对象。
区别就是面向过程是一个执行者,面向对象时是一个指挥者。
这么说应该可以吧。嘿嘿

又或者花盆。
面试官自己浇花、修剪等,面试官就是执行者,就是面向过程了。
找一个阿姨,具备浇花、修剪的功能,帮他完成这些事情,这就是指挥阿姨完成功能。指挥者。就是面向对象了。
至于还有一个就是对象的引用,面试官只需要知道阿姨的电话号码就可以完成上例一系列的事情了,电话号码就是一个引用,不管面试官在哪里,一个电话就可以叫阿姨完成浇花、修剪等动作。
如果真的要说有些地方不能继续使用那个引用了,那么可以理解为面试官已经不在服务区了。呵呵
这么说能理解吗?
作者: 依米阳光    时间: 2014-11-22 11:04
Eagle 发表于 2014-11-22 10:50
面试时,可以就地取材。比如,说面试官,或者花盆。
为什么招聘,就是在找一个对象。
如果他自己写代码, ...

面向过程是一个执行者,面向对象时是一个指挥者。感觉这句话重要是针对面向的封装特性而说的。虽然自己也理解,但是自己在平常写代码的过程中总是习惯的运用面向过程的写法,以后得尽量去改。不过还是谢谢你!
作者: Afridoce    时间: 2014-11-22 12:17
我是这么理解的:
面向对象就是把一些要处理的东西(过程)封装起来,知道使用和结果就可以了,无需在意处理过程。
面向过程就是东西要怎么处理都一步步去做,还要知道怎么使用和结果。   
作者: 随风sky    时间: 2014-11-22 23:28
这个概念还是要不断实践才用自己的语言说出来的,别人的理解终究和你不会相同!加油!
作者: Eagle    时间: 2014-11-23 01:13
依米阳光 发表于 2014-11-22 11:04
面向过程是一个执行者,面向对象时是一个指挥者。感觉这句话重要是针对面向的封装特性而说的。虽然自己也 ...

哦。以前也是做开发的是吗?是C开发?呵呵,小伙子很有前途啊,哈哈
作者: 依米阳光    时间: 2014-11-23 09:25
Eagle 发表于 2014-11-23 01:13
哦。以前也是做开发的是吗?是C开发?呵呵,小伙子很有前途啊,哈哈

学过C,不过现在做Asp.Net网站开发,偶尔也写写wpf小游戏,希望大神以后多多指点啊
作者: 下一站    时间: 2014-11-23 10:04
县举个例子吧,比如说你去饭店吃饭,你只需向服务员说明你想要吃什么,而不需要知道,这道菜的具体做法和需要的材料。面向对象:告诉服务员你要点的菜,等服务员给你上菜,服务员就相当于你控制的对象。而面向过程则是这个菜的制作过程,我们则没必要知道!!
作者: Eagle    时间: 2014-11-23 10:58
依米阳光 发表于 2014-11-23 09:25
学过C,不过现在做Asp.Net网站开发,偶尔也写写wpf小游戏,希望大神以后多多指点啊 ...

大神你就别埋汰我了。嘿嘿。我才19岁,刚开始学java的,以前就看过易语言,所以对面向对象比较好理解。
其他编程语言现在都没有学过的。。。不过,都比较爱好。可能会像你一样,都会学的。呵呵
作者: 依米阳光    时间: 2014-11-23 11:03
Eagle 发表于 2014-11-23 10:58
大神你就别埋汰我了。嘿嘿。我才19岁,刚开始学java的,以前就看过易语言,所以对面向对象比较好理解。
...

嗯,那就一起努力啦,嘿嘿。
作者: cbb    时间: 2014-11-23 11:05
面向过程是执行者,而面向对象是调用者。
作者: superjiejie    时间: 2014-11-23 11:45
我觉着毕姥爷 解释的就很形象了 !  比如把大象放进冰箱 :
1.面向过程的思想是: 打开冰箱 把大象放进冰箱  关闭冰箱  注重的是动作
2.面向对象的思想是: 冰箱打开  冰箱中放入大象 冰箱关闭  注重的是冰箱这个实体
作者: Eagle    时间: 2014-11-23 12:05
依米阳光 发表于 2014-11-23 11:03
嗯,那就一起努力啦,嘿嘿。

恩呢。:D
作者: java小兵    时间: 2014-11-23 19:15
昨天看了一个洗衣服 的例子。
自己洗衣服就是过程,打水,泡衣服,倒洗衣粉,洗!
然后 如果是 洗衣机的话就会是调用对象。直接拿洗衣机洗。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2