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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 段郎 中级黑马   /  2014-3-2 16:36  /  1299 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

我之前是学c的,c是面向过程的编程语言,而java是面向对象的编程语言。我现在理解的面向对象就是,一切事物皆对象,每类事物都可以用一个类进行抽象。类中的属性和方法就是该事物的特征。我是这么理解的,请问还有没有更具体一点的解释,用生活中的例子那就太好了。我听说学从c到java需要思想上有个转变,就是从买面向过程到面向对象。

评分

参与人数 1技术分 +1 收起 理由
何伟超 + 1

查看全部评分

5 个回复

倒序浏览
面向对象这个词语,我觉得应该从三个方面来考虑。第一是它的概念。第二是它的实现方法,第三是它的目的。
概念大家都清楚,而它的实现也很简单,无非就是封装、继承和多态。它的目的是什么,前面已经有人提到了,就是如何从容的面对变化。程序员每天的生活就是面对变化、解决变化。
“面向对象”和“面向过程”孰优孰劣关键取决于项目的需求。一般来说,前期适合用面向过程的方式去解决用户的需求,然后到了项目后期,进行代码重构,一直到项目结束。在项目结束后,好好的总结一下,将以前的代码和设计拿出来仔细的看看,然后静心的想想还有哪些地方值得优化、哪里的设计还存在问题。这样做过几个项目的话,“面向对象”的思想也就差不多掌握了。
面向对象会衍生出“模式”,“模式”是将面向对象进一步封装。在特定的场合特定的需求下使用模式。四人帮的23种模式并非一成不变,他们只是前人经验的总结而已,根据自己项目的特点进行改造。

评分

参与人数 1技术分 +1 收起 理由
何伟超 + 1

查看全部评分

回复 使用道具 举报
毕老师视频里说的几个例子挺好理解的吧?!一个买电脑的问题,如果面向过程那么你从有想买电脑这个念头开始,就得先去学习一些电脑知识。你的知道它的组成,你买来需要用到什么就得确定好具体的配置等等。所以的一切过程你都的了解,怎么实现从有买电脑的念头到拿到电脑。而假如是面向对象那么当你想买电脑时,你就可以去找懂电脑的人,你只需要将你的需求告诉他,让他运用他的知识、能力去帮你买一台符合你需求的电脑。所以这个过程你只需要调用他,他给你结果就可以了,你不用知道他是如何搞定的。在java中你可以先将一些特定的事物封装成类,里面定义好他的属性、功能,在你需要用到他时直接调用就可以了。你也可以使用API文档查阅别人已经封装好的类,你要实现什么功能直接去调用它就可以了,不需要自己一步一步去做,就能得到你要的结果。 ( 仅代表本人观点,如有不妥还望指正!)

评分

参与人数 1技术分 +1 收起 理由
何伟超 + 1

查看全部评分

回复 使用道具 举报
找个对象直接 拿来用就得了,,你不需要知道 对象里面到底是什么东西  知道它有什么功能  直接拿来用就得了

比如 不喜欢洗碗 拖地 洗衣服 等家务活的单身们 ,,,不需要自己动手,,直接找个对象不就得了么~~~~{:2_33:}  
回复 使用道具 举报
汽车厂生产汽车。需要设计汽车的图纸(类),汽车图纸包含了要生产的那些汽车(对象)的共性(属性与方法,你也可以理解为特征和行为):车轮、方向盘等等,而每辆汽车(每一个对象)是根据图纸生产出来就好比对象的创建,每辆车都有各自的属性和方法(车轮、方向盘等等)这些都是通过图纸生产出来,当然每辆车还可以有自己特有的属性,如:每辆车的车轮可以颜色不一样,有红、黄的。。。;车轮颜色是每辆车自己独特的属性或行为,所以车轮颜色的不同这就体现了面向对象的多态性。

评分

参与人数 1技术分 +1 收起 理由
何伟超 + 1

查看全部评分

回复 使用道具 举报
这个,理解起来也不难,
就是从开发变成了指挥者
面向过程:我去吃饭,我得自己下厨,将自己要吃的东西做出来,然后吃掉
面向对象:我去吃饭,我可以叫会做菜的人,告诉他我要吃什么什么,他会给我做,我不用管怎么做的,只管吃。。
说白了就是个换位思考的过程。。。

评分

参与人数 1技术分 +1 收起 理由
zzkang0206 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马