//:SprinklerSystem.java
//Complsition for code reuse
package co6;class WaterSource {
private String s;
WaterSource() {
System.out.println("WaterSource()");
s = new String("Constructed");
}
public String toString() {
return s;

}
}public class SprinklerSystem {
private String valve1,valve2,valve3,valve4;
WaterSource source;
int i;
float f;
void print() {
System.out.println("valve1 =" + valve1);
System.out.println("valve2 =" + valve2);
System.out.println("valve3 =" + valve3);
System.out.println("valve4 =" + valve4);
System.out.println("i =" + i);
System.out.println("f =" + f);
System.out.println("source =" + source);
}
public static void main(String[] args) {
SprinklerSystem x = new SprinklerSystem();
x.print(); }}
红色字体部分指的是什么?
为什么必须采用洋红色那部分文字?……toString()

解决方案 »

  1.   

    toString() 方法一般会把返回对象内部字段的数据值。一个类实现 toString(), equals(), hashCode() 方法是很好的做法。
      

  2.   

    toString()方法是返回此对象本身,否则会出现弄码!!!
      

  3.   

    红色部分定义了一个变量,粉色部分定义了一个函数:toString,这样在调用这个类的toString时就会返回字符串而不是一个没有意义的内存地址了
      

  4.   

    System.out.println(source);
    他会自动的掉用source 的toString()方法
    所有的类都有toString()方法
    因为Object就有,你所做的只是复写了该方法
      

  5.   

    除了String等一些覆盖过toString()方法的以外一般都要重写toString(),equals(),hashCode(),这也是sun公司推荐的
      

  6.   

    对超类Object类toString()方法的重写
      

  7.   

    WaterSource source;默认构造根本没调用,最后返回的一定是空的
      

  8.   

    洋红色方法返回的是 Constructed
      

  9.   

    红色部分是说明SprinklerSystem类中有一个Watersource的对象,由于SprinklerSystem采用默认的构造函数,那样source应该是个null型对象,所以即使有洋红色那部分的代码,重写了toSring方法,但最终source =null,应该是这样的
      

  10.   

    8楼的回答还可以,toString方法是Object类中定义的一个方法,因为所有的java类都继承了Object类,所以所有Java的类中就都有的toString方法,在你使用System.out.println();输出一个引用类型的变量时,系统会自动的调用Object类中的toString方法(如果你没有在自己的类中重写该方法的话),这时Object类中定义的这个方法会输出:类名+@+类的哈希码,这是Object类中定义的该方法的实现,但是如果你的类是String,Date或者是与集合有关的类的话,那么就会直接输出对象的值。希望可以帮到你!
      

  11.   

    那个类中重写了toSring方法,就这个意思
      

  12.   

    String 类里面本来有toString()这个方法,楼主重写了这个方法,变红了
      

  13.   

    toString是Object类的一个子类。LZ的程序中应该会输出类名吧
      

  14.   

    那个类中重写了toSring方法,就这个意思