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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

在面向对象设计时,怎样考虑类持有对象和通过构造方式传入对象两种方式的区别与联系

点评

请用一断代码描述一下,我不大听得懂你说的什么意思  发表于 2014-2-20 12:32

评分

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

查看全部评分

5 个回复

倒序浏览
  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{}
复制代码

点评

多送1分  发表于 2014-2-20 13:36

评分

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

查看全部评分

回复 使用道具 举报
构造函数一般是用来对类的成员变量进行初始化的。
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,你只需要一个简单的创建,不需要从外界传进来。
这个是看你的需求定的。

评分

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

查看全部评分

回复 使用道具 举报
其实这个要考虑需求吧!类持有对象是指在类中拥有自己的对象的话,让我联想到饿汉式那种模式!如果传入对象当然是需求中需要一个对象来进行操作了!他们的区别一个是自身调用不让外部创造自身对象,一个是需要外部对象进行操作!联系的话~其实都是对对象的一种操作啦!

评分

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

查看全部评分

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