2019-01-18Java编程思想第七章代码复用(参考Java

2019-01-18  本文已影响0人  gdlooker

实例1:组合语法(组合就是一个类中含有另外一个类的引用)

//水源类
public class WaterSource {

    private String s;
    WaterSource(){
        System.out.println("构造器的初始化");
        s="concructed";
    }

    //重写toString 方法
    @Override
    public String toString() {
        return s;
    }
}

附上SprinklerSysterm的测试类代码如下:

public class SprinklerSysterm
{
    private String valve1,valvel2,valvel3,valvel4;

    //复用另一个类的代码
    private WaterSource source=new WaterSource();
    private int i;
    private float f;



    //在该类里面重写toString方法
    @Override
    public String toString() {
        System.out.println("SprinklerSysterm的toString方法被调用");
        return "SprinklerSysterm{" +
                "valve1='" + valve1 + '\'' +
                ", valvel2='" + valvel2 + '\'' +
                ", valvel3='" + valvel3 + '\'' +
                ", valvel4='" + valvel4 + '\'' +
                ", source=" + source +
                ", i=" + i +
                ", f=" + f +
                '}';
    }

    public static void  main(String ...args){

        //
        SprinklerSysterm sprinklerSysterm=new SprinklerSysterm();
        System.out.println(sprinklerSysterm);

    }
}

附上运行结果:

复用类代码运行结果测试.png

总结:说明在一个类中的toString方法包含另外一个类的实例,那么也会调用另外那个类的toString方法

注意:平时我们 A a=new A(); Systerm.out.println(a) //如果我们不重写toString的方法这里调用的是Object的toString() ,Object的toString的源代码如下:

 public String toString() {
        return getClass().getName() + "@" + Integer.toHexString(hashCode());
    }

不重写Object的toString方法打印结果如下:

不重写Object的toString.png
上一篇下一篇

猜你喜欢

热点阅读