//:reusing/SprinklerSystem.java//Compositionforcodereuse.classWaterSource{privateStrings;WaterSource(){System.out.println("WaterSource()");s="Constructed";}publicStringto...
//: reusing/SprinklerSystem.java// Composition for code reuse.class WaterSource { private String s; WaterSource() { System.out.println("WaterSource()"); s = "Constructed"; } public String toString() { return s; }} public class SprinklerSystem { private String valve1, valve2, valve3, valve4; private WaterSource source = new WaterSource(); private int i; private float f; public String toString() { return "valve1 = " + valve1 + " " + "valve2 = " + valve2 + " " + "valve3 = " + valve3 + " " + "valve4 = " + valve4 + "\n" + "i = " + i + " " + "f = " + f + " " + "source = " + source; } public static void main(String[] args) { SprinklerSystem sprinklers = new SprinklerSystem(); System.out.println(sprinklers); }} /* Output:WaterSource()valve1 = null valve2 = null valve3 = null valve4 = nulli = 0 f = 0.0 source = Constructed*///:~ 为什么最后source的值为Constructed。还有请具体解释下toString()这个方法
展开