黑马程序员技术交流社区

标题: 请谈谈面向对象。 [打印本页]

作者: 陈云展    时间: 2012-11-3 13:39
标题: 请谈谈面向对象。
重要提示:无论是不是学过编程都可以谈,支持也好,不要copy的。
先说下我提问的原因吧。我主要是想将此问题作为面试的一个筹码。您可以举例子,联系某一编程语言。可以联系写过的东西。可以联系现实。可以联系任意可以联系的东西。包括什么面象过程。之后我会将大家的答案好好思考在CSDN上写一个博客。先谢谢大家给予关心。(对了,爱好编程的也可以加下我好友。如果您愿意的话。加好友时请注明真实姓名,我的真实姓名为陈云展。)


作者: 陈云展    时间: 2012-11-3 13:40
面向对象

实际解决一个问题的时候

1,考虑这个问题域里面有那些个类那些个对象
2,考虑和该问题相关的类和对象的方法和属性。
3,考虑类和类之间的关系对象和对象之间的关系。

1,封装
2,继承
3,多态



类与类之间对象和对象之间的关系


比较弱的  关联    它的体现往往体现在一个对象作为一个对象的参数    例如用户和订单这间    用户下订单

比较强的  继承   子类继承父类所有的东西 当然子类还可以有自己的扩展的方法和属性。   但是它不能访问父类的私有方法和属性     举例   家里的钱既是儿子的也是爸爸的   但是爸爸用钥匙把钱锁在柜子里。儿子虽然有钱的拥有钱,但是不能花钱。除非爸爸把柜子打开。 这里的柜子就相当于访问权限。    有四种 public protected default private
          聚合(聚集  公司和我的关系    和组合     公司和您的关系)   一个是另一个的一部分    例如  人和头   代码的体现在 public class Person( private Head head;)

多态   编程者苦苦追求的一个境界:   而多态则些发挥到了极致。  我更喜欢叫它动态绑定   它是由java虚拟机运行时决定调用那个方法。
       栈     堆      code segment   data segment。
接口     解决问题的时候     常常会有两种实现的方法       一个是实现某一个接口   一个则是继承某一抽象类    例如   创建一个线程    struts2创建一个Action struts2里自定义一个拦截器。      两者的有何差异呢?proxy    接口比较灵活        而继承则比较统一。抽象类是一个半成品。
实现   



大家可以像我这样。任意发挥。{:soso__2065358560170763168_3:}
作者: jsfjb    时间: 2012-11-3 13:51
我认为学好面向对象从下面这几步入手
1,先要了解面向对象的一些基础的概念性的东西。
2,再把这些概念性的东西应用,一点要能够灵活应用,关键是多态,我特别看好多态,貌似好多的设计模式都是因为有了多态才出来的。
3,到这样步的话,你就基本上了解了面向对象了,及时到了这一步,我感觉也只能说你知道有面向对象这个东西了。
4,然后对面向对象,进行深入的了解,这一点,我是看了张老师的7K的面试后,才知道的。

感慨两句:原来我学习的时候,也知道了什么是面向对象,并且也知道,万事万物皆对象。现在看来,我原来的纯属扯淡。只有看了张老师的7K的视频的讲解后,才发现。我还是再整上几年后,我再说:万事万物皆对象吧!
作者: 陈云展    时间: 2012-11-3 13:55
jsfjb 发表于 2012-11-3 13:51
我认为学好面向对象从下面这几步入手
1,先要了解面向对象的一些基础的概念性的东西。
2,再把这些概念性的 ...

能总结性的说说张老师对面向对象的讲解吗?
作者: jsfjb    时间: 2012-11-3 14:02
陈云展 发表于 2012-11-3 13:55
能总结性的说说张老师对面向对象的讲解吗?

这个问题很难。我还回答不了。
如果要是非要让我说我会说:

面向对象设计把握一个重要的经验:谁拥有数据。谁就对外提供操作这些数据的方法。

哥们,我建议您,别整的这么深,先掌握基础吧。这个也是我看完张老师的视频后的笔记。我真的不是怎么特别理解。
作者: HeiMa-黄倲江    时间: 2012-11-3 14:32
有幸听过一个一位老师这么说面向对象的.

老师说:同学们,你们是一个类,而你小子才是一个对象,  


我就这么去理解的,
作者: 陈云展    时间: 2012-11-3 14:44
jsfjb 发表于 2012-11-3 14:02
这个问题很难。我还回答不了。
如果要是非要让我说我会说:

您的意思是合适的方法应该放到合适的类里面,例如火车票有价格这个属性,那么它自己就应该有显示价格的方法。只有它自己显示是最合理的。放在其它类里是不合理的。




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