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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© wzh4488 中级黑马   /  2015-8-13 21:31  /  666 人查看  /  17 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

解释的不要太官方,最好用最朴实的语言来说。

17 个回复

倒序浏览
面向对象就是以对象为基础,比如说你要出去玩,你要自己看景点,查车票、宾馆什么的等。这时候运用面向对象的思想就是你去报一个旅行社,你只需交钱,剩下的事情旅行社就都做了。

点评

很生动形象!  发表于 2015-8-14 21:01
回复 使用道具 举报
万物皆对象,这个够通俗吧!
回复 使用道具 举报
万物皆对象  指挥对象做事情  就是面向对象思想了
回复 使用道具 举报
这个得靠自己理解,再去看老毕的视频吧
回复 使用道具 举报
万物皆对象,就像我们人一样,就像我们想描述心脏一样,心脏属于人吧,我们可以把人看做一个对象然后在人体内再说左心房右心房什么的。
回复 使用道具 举报
万物皆对象啊
回复 使用道具 举报
大神的内心都是万物皆对象。
回复 使用道具 举报
本帖最后由 zby_allan 于 2015-8-16 11:55 编辑

朴实来说,面向对象就是一种高阶的思维模式。你先搞明白对象,就知道面向对象了。对象,你就可以理解为是一个我们要研究的东西,任何自然具有它的属性Field,有它的行为Method,这是个性的部分,比如你的名字,你的身高体重等等。从哲学上说,共性(普遍性)存在于个性(特殊性)之中,并通过个性表现出来。所以对象不是孤立的,首先它属于一个类别,Java是强类型语言,所有的东西都要定义在类里面,通常我们也是以类来构建一个对象的,当然这也更加符合自然之理。好比我不能直接是一个人,我是人类的一个实例,我具有人类的特性和行为,这样对所有人做了抽象,把共有的部分定义在类里,有些是每个人都不一样的,还是比如名字或身高体重,但也有些是所有人都一样的,比如人都有两个眼睛一个鼻子一张嘴。这些都一样的,可以定义成常量。而各自不同的,就在构建的时候提供信息,比如通过构造器,可以在构建对象的时候采集这个信息,当然只要不是final的field,后续还是可以再更改的。比如你的年龄,就是会变的。当然,类别和类别间也存在关系,有些类有继承关系,比如人类继承自灵长类继承自哺乳动物继承自动物,所以这个共性是在一点点增多的。子类都包含了父类的特征,同时又具有自己独特的特征。有些类之间存在组合关系,比如人由筋脉皮肉骨五脏六腑等等器官组成,这些器官也是对象,人和器官之间就是组合关系。

关于行为,在Java里一般采用定义方法的方式来处理,方法就是一个加工处理的机器。有三个环节,第一个环节是你要提供的原料,第二个环节是加工的过程,第三个环节是产出的产品。原料一般就是传入的参数,加工过程就是一系列的代码,不过很多时候我们对这些代码进行“封装”,使用者甚至不需要知道具体的原理和操作细节,而产出的产品可以通过返回值返回回来。就好像toaster吐司面包机,你放进去面包,拿出来吐司(烤面包),就这么简单。任何时候要用,只要按要求放进去面包,再把吐司取出来到合适的地方就行了。方法的调用说的就是这么回事。
封装的好处就是可以定义对于对象参数处理的权限,从而保护了一些参数不被没有权限的人随意更改,即便要更改,也是通过合适的方法。关于权限修饰符,就很好理解了。
多态可能是比较难理解的,但其实也不难。还是用通俗的话来说。好比一个父类-形状。有若干子类-圆形,方形,三角形。形状类有一个方法,叫做面积。这个方法提供了一个形状对象的面积,但问题是,每种子类形状求面积的方法都不同,怎么办呢,如果我们在父类不定义面积,全部定义到子类,那么我们就必须明确知道是什么形状之后才能得到它的面积。但很多时候我们不会明确知道具体是什么形状,这就用到多态。在父类定义面积的方法,在子类对求具体面积的方法进行重写。然后我们只需要构建一个父类引用,指向一个子类的对象(形状 xz = new 圆形())这种形式,然后xz.面积()就会自动找到圆形的面积方法去调用。就使得代码更具有可扩展性。
说了这么多对象,那么面向对象就是,我们在思考建模(这是编程的核心,就是把实际中的问题,建立起逻辑的模型,然后用代码模拟出来,并得到我们想要的结果)的时候,把所有的一切都当成对象,用上述的这些方式去思考该对象的方方面面。这是最有效的思维方式,其实就是一种思维方式。
大早上打了这么多,当然这不能涵盖面向对象的所有细节,但是主要就是说明面向对象其实就是一种最合理的思维方式,一开始学的时候肯定是一头雾水的,因为学了太多的面向对象工具,还不知道什么是面向对象呢,这就是只见树木不见森林。
其实一开始先记住细节,等到所有细节学完之后,回过头来去再看一遍,争取站在更高的全局的角度去想问题,也就是为什么要这样,过几遍就差不多清晰了。实在还是不清晰,没关系,往后学。Java里面向对象无所不在,用多了就知道了。比如说容器的构建里面,基本上很多都是用多态,你用多了就认识了。
我也刚学了几个月,自学效率不是很高,这是一点心得,希望对你有帮助。
回复 使用道具 举报
zby_allan 发表于 2015-8-14 08:47
朴实来说,面向对象就是一种高阶的思维模式。你先搞明白对象,就知道面向对象了。对象,你就可以理解为是一 ...

哇,作为初学者,感觉这位层主已经理解其思路了,羡慕啊
回复 使用道具 举报
我都醉了   上上面的发 那么多  楼主能看进去么,   

楼主 面向过程思想就是我们只考虑这个问题解决的过程,其他的都不考虑 所以我们直接在一个一个的函数里面解决这个问题.    面向对象呢是我们将解决问题的方法和成员变量封装到一个类里面我们不考虑他是怎么实现的,我们要解决问题时候直接调用   
回复 使用道具 举报
我是这样理解的  面向 你别管 对象 你总该懂吧 java中什么都是class 由类的构造方法就能 创建对象 new一个对象 就是创建一个实体 这个实体就有很多数据信息 感觉封装成了一个包似的
回复 使用道具 举报
zby_allan 发表于 2015-8-14 08:47
朴实来说,面向对象就是一种高阶的思维模式。你先搞明白对象,就知道面向对象了。对象,你就可以理解为是一 ...

十分感谢你的分享!我只看了前一段,后面确实有点看不下去了
回复 使用道具 举报
好比如:你坐公交上学。公交就是对象,你为了去上学而使用坐公交的方法。这就是面向对象思想。
回复 使用道具 举报
这些东西理解了,但是不知道怎么表达!面向过程跟面向对象最直接的体现就是角色的不一样了,从执行者变成了指挥者!
回复 使用道具 举报
本帖最后由 xingui66 于 2015-8-16 10:58 编辑

请问:楼主知道什么叫:名词,动词,形容词····吗??
下面说说我自己的理解嚎:凡是你能叫得出名字,或者有名字的事物,都称为名词,名词就等于对象这个词,任何一个名词(玫瑰花,狗尾巴草,楼房,马云),都可以称为对象,,而每一个名词,都有自己的特征:(花:红色,草:绿色,毛茸茸的;楼房:15层楼,长方形;马云:亿万富翁,丑,50岁),,这些名词的特征,换一种说法,可以说成,对象的属性,,每个对象有多种多样的属性,属性一词也解释了;扩展一下:上面的对象,可以扩展一下:花,草,房子,男人,,,这四个词,可以称为之前那些词的父级,即总分类,,玫瑰花在“花”,这一类里面,狗尾草在“草”里面是一个分支,等等,,这就引伸出了,类,这个名词,,就是java里面的类了,,
这就是,名词的范围之广,所以就有人说:万物皆对象,这一概念了
希望我的这些理论不是误人子弟的谬论
··············································http://blog.csdn.net/xingui6/article/details/47700621
回复 使用道具 举报
你现在问问题就是调用对象来回答你的问题,回答问题的人就是对象,具备解答的功能。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马