组合方法为什么现在在有些书上都不出现了呢..
但  JAVA编程思想里出的这个..请问组合 跟 继承 有什么区别跟联系吗?

解决方案 »

  1.   

    这段代码的意思是说,主类型的局部变量是在声明时被自动构造(且被自动初始化,数值型初始化为0,布尔型初始化为false),而对象(包括字符串)被声明后,必须显式调用“ new 构造函数”(String类型比较特殊,可以用“= "XXX"”同时实现构造和初始化。System.out.println("valve1= "+valve1);
    等相当于
    System.out.println("valve1= "+String.ValueOf(valve1)); 
    而String.ValueOf(Object obj)规定,若参数obj=null,则此方法输出字符串“null”(不是“”)。
      

  2.   

    谢谢楼上的。。
    但是 请问Watersource类中的
     Watersource () {
        System.out.println("Watersource()");
        s=new String ("Constructed");
        public String tostring () {return s;}
     }它的作用是什么呢?
    最后
      

  3.   

    (接上)
       System.out.println("source= "+source);(source跟Watersource有关系的)
    打印出的结果也是NULL。。
    这跟Watersource(){……} 有什么关系吗?
    它是怎么导致最后打印出NULL呢。。
      

  4.   

    因为Watersource source;
    source只是被初始化为NULL,呵呵。并没有被new 
    如果是Watersource source = new Watersource();就不一样了。兄弟的基础要加强啊
      

  5.   

    多谢楼上指点..
    (如果被new的话..    也就是这些都被执行了,对吗?
       System.out.println("Watersource()");
        s=new String ("Constructed");
        public String tostring () {return s;}如果 没被new,这些都不被执行?
    )
    再次感谢
      

  6.   

    composition就是一个东西是用另一个东西来实现的,
    比如上边你的Sprinklersystem 类借助WaterSource来实现。
    composition很重要的,
    一般关于design pattern之类的书都会有一条prefer composition to inheritance
    就是在选择继承时,先看看是否用composition实现更好!
      

  7.   

    确切地讲,就是Sprinklersystem类中的source 是由Watersource类中的Watersource()实现的?这么说对吗?
    这就是 组合(composition)的特性?