A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 依米阳光 于 2014-11-22 21:26 编辑

小白求教:对于面向对象和面向过程的定义不是很明白,还有他们的区别在哪?最好能用代码中的例子给予说明,谢谢!

评分

参与人数 1技术分 +1 收起 理由
杨佳名 + 1

查看全部评分

18 个回复

正序浏览
昨天看了一个洗衣服 的例子。
自己洗衣服就是过程,打水,泡衣服,倒洗衣粉,洗!
然后 如果是 洗衣机的话就会是调用对象。直接拿洗衣机洗。
回复 使用道具 举报
Eagle 高级黑马 2014-11-23 12:05:04
18#
依米阳光 发表于 2014-11-23 11:03
嗯,那就一起努力啦,嘿嘿。

恩呢。:D
回复 使用道具 举报
我觉着毕姥爷 解释的就很形象了 !  比如把大象放进冰箱 :
1.面向过程的思想是: 打开冰箱 把大象放进冰箱  关闭冰箱  注重的是动作
2.面向对象的思想是: 冰箱打开  冰箱中放入大象 冰箱关闭  注重的是冰箱这个实体
回复 使用道具 举报
cbb 中级黑马 2014-11-23 11:05:41
16#
面向过程是执行者,而面向对象是调用者。
回复 使用道具 举报
Eagle 发表于 2014-11-23 10:58
大神你就别埋汰我了。嘿嘿。我才19岁,刚开始学java的,以前就看过易语言,所以对面向对象比较好理解。
...

嗯,那就一起努力啦,嘿嘿。
回复 使用道具 举报
Eagle 高级黑马 2014-11-23 10:58:22
14#
依米阳光 发表于 2014-11-23 09:25
学过C,不过现在做Asp.Net网站开发,偶尔也写写wpf小游戏,希望大神以后多多指点啊 ...

大神你就别埋汰我了。嘿嘿。我才19岁,刚开始学java的,以前就看过易语言,所以对面向对象比较好理解。
其他编程语言现在都没有学过的。。。不过,都比较爱好。可能会像你一样,都会学的。呵呵
回复 使用道具 举报
县举个例子吧,比如说你去饭店吃饭,你只需向服务员说明你想要吃什么,而不需要知道,这道菜的具体做法和需要的材料。面向对象:告诉服务员你要点的菜,等服务员给你上菜,服务员就相当于你控制的对象。而面向过程则是这个菜的制作过程,我们则没必要知道!!
回复 使用道具 举报
Eagle 发表于 2014-11-23 01:13
哦。以前也是做开发的是吗?是C开发?呵呵,小伙子很有前途啊,哈哈

学过C,不过现在做Asp.Net网站开发,偶尔也写写wpf小游戏,希望大神以后多多指点啊
回复 使用道具 举报
Eagle 高级黑马 2014-11-23 01:13:16
11#
依米阳光 发表于 2014-11-22 11:04
面向过程是一个执行者,面向对象时是一个指挥者。感觉这句话重要是针对面向的封装特性而说的。虽然自己也 ...

哦。以前也是做开发的是吗?是C开发?呵呵,小伙子很有前途啊,哈哈
回复 使用道具 举报
这个概念还是要不断实践才用自己的语言说出来的,别人的理解终究和你不会相同!加油!
回复 使用道具 举报
我是这么理解的:
面向对象就是把一些要处理的东西(过程)封装起来,知道使用和结果就可以了,无需在意处理过程。
面向过程就是东西要怎么处理都一步步去做,还要知道怎么使用和结果。   
回复 使用道具 举报
Eagle 发表于 2014-11-22 10:50
面试时,可以就地取材。比如,说面试官,或者花盆。
为什么招聘,就是在找一个对象。
如果他自己写代码, ...

面向过程是一个执行者,面向对象时是一个指挥者。感觉这句话重要是针对面向的封装特性而说的。虽然自己也理解,但是自己在平常写代码的过程中总是习惯的运用面向过程的写法,以后得尽量去改。不过还是谢谢你!
回复 使用道具 举报
Eagle 高级黑马 2014-11-22 10:50:28
7#
依米阳光 发表于 2014-11-22 03:17
如果说这是一道面试题,面试经理就是这么问的,觉着这么回答是不是有点太模糊了,还有他们之间的差别也没有 ...

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

又或者花盆。
面试官自己浇花、修剪等,面试官就是执行者,就是面向过程了。
找一个阿姨,具备浇花、修剪的功能,帮他完成这些事情,这就是指挥阿姨完成功能。指挥者。就是面向对象了。
至于还有一个就是对象的引用,面试官只需要知道阿姨的电话号码就可以完成上例一系列的事情了,电话号码就是一个引用,不管面试官在哪里,一个电话就可以叫阿姨完成浇花、修剪等动作。
如果真的要说有些地方不能继续使用那个引用了,那么可以理解为面试官已经不在服务区了。呵呵
这么说能理解吗?

评分

参与人数 1技术分 +1 收起 理由
杨佳名 + 1

查看全部评分

回复 使用道具 举报
代码举例没必要,重要的是理解这种思想。
例子:你要开车去去旅游。
面向过程:打开车门,上车,挂档,踩油门,车开动,到地方你踩刹车。都是你自己在按照这个过程的顺序在做。(你平常做事情是不是要想我先干什么接下来干什么)
面向对象:车开 、到地方车停。这时候你就是一个指挥者,指挥车开、车停,因为车有启动和停的功能,你只调用车的启动和停止功能就行,不用管车是怎么启动的、怎么停下的。(就像你是老板对两个人说你扫地,你擦桌子,你只需要调用,没必要知道是怎么扫的地怎么擦的桌子)
我的理解就这样,很多例子我写的简单例子。面试题什么的举例最好了。

评分

参与人数 1技术分 +1 收起 理由
杨佳名 + 1

查看全部评分

回复 使用道具 举报
如果说这是一道面试题,面试经理就是这么问的,觉着这么回答是不是有点太模糊了,还有他们之间的差别也没有说啊
回复 使用道具 举报
面向过程是自己做,也就是实施者。
面向对象是自己让别人做。是指挥者。
回复 使用道具 举报
在没有计算机的时候 我们要进行一些运算时,必须自己来进行运算的每一步动作,现在我只要把我要的运算输入到计算机上 我就可以的到我想要的结果。至于计算机是怎么算的 我不用管,  计算机就是一个对象。  
回复 使用道具 举报
面向过程就是将编程当成是做一件事,要按步骤完成,每一步就是一个过程。
面向对象就是将编程当成是一个事物,对外界来说,事物是直接使用的,不用去管他内部的情况。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马