package com.car.bbs.util;
/**
* Created by wangjianxin on 2017/2/28.
*/
public class test7 {
static class WaterSource{
private String s;
WaterSource(){
System.out.println("WaterSource()");
s = "Consrtucted";
}
public String toString(){
return s;
}
}
public static class SpinklerSystem{
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+
"i="+i+"f="+f+"source="+source;
}
}
public static void main(String args[]){
SpinklerSystem spinklerSystem = new SpinklerSystem();
System.out.println(spinklerSystem);
}
}
输出结果:WaterSource()
valve1=nullvalve2=nullvalve3=nullvalve4=nulli=0f=0.0source=Consrtucted
在上述中有两个类都有toString方法,当编译器需要一个String而你却只有一个对象时,该方法就会被调用
在SpinklerSystem.toString方法中有"source= "+source编译器知道你想要一个String对象,要把source转化为String。
说白了将String和对象相加(“String”+对象)需要将对象转化为String,然后调用对象的toString方法。
但是有人就会想了,如果没有toString方法呢,结果看一下
WaterSource()
valve1=nullvalve2=nullvalve3=nullvalve4=nulli=0f=0.0source=com.car.bbs.util.test7$WaterSource@2f8c5b4f
一目了然。
当我们创建的类需要这样的行为时候,就可以编写一个toString方法即可。