黑马程序员技术交流社区

标题: 在面向对象设计时,怎样考虑类持有对象和通过构造方式传入对象使用区别和联系 [打印本页]

作者: ghhryr    时间: 2014-2-20 12:28
标题: 在面向对象设计时,怎样考虑类持有对象和通过构造方式传入对象使用区别和联系
在面向对象设计时,怎样考虑类持有对象和通过构造方式传入对象两种方式的区别与联系
作者: ghhryr    时间: 2014-2-20 12:39
  1. public class Traffic {

  2.         private Lamp lamp = null;
  3.         public Traffic(Lamp lamp){
  4.                 this.lamp = lamp;
  5.         }
  6.         //我们经常这样写的,但是为什么要这样写? 不太明白
  7. }
  8. class TrafficDemo{
  9.         private  Lamp lamp = new Lamp();
  10. }

  11. class Lamp{}
复制代码

作者: 李金中    时间: 2014-2-20 13:36
构造函数一般是用来对类的成员变量进行初始化的。
public class Traffic
{
      private Lamp lamp = null;
      public Traffic(Lamp lamp)
      {
           this .lamp = lamp;
      }
}
这段代码是因为你想用外界的一个Lamp对象,对Traffic的成员变量lamp进行初始化赋值。
而 class TrafficDemo
{
        private  Lamp lamp = new Lamp();
}
意思是对于TrafficDemo的成员变量lamp,你只需要一个简单的创建,不需要从外界传进来。
这个是看你的需求定的。


作者: 白_蓝(八公)    时间: 2014-2-20 13:56
其实这个要考虑需求吧!类持有对象是指在类中拥有自己的对象的话,让我联想到饿汉式那种模式!如果传入对象当然是需求中需要一个对象来进行操作了!他们的区别一个是自身调用不让外部创造自身对象,一个是需要外部对象进行操作!联系的话~其实都是对对象的一种操作啦!




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