package ch5; class Cleanser { /**
 * @param args
 */
private String s=new String("Cleanser");

public void append(String a){
s =s + a;
}

public void dilute(){
append("dilute");
}

public void apply(){
append(" apply");
}

public void scrub(){
append(" scrub");
}

public String tostring(){
return s;
}


public static void main(String[] args) {
// TODO Auto-generated method stub

Cleanser x=new Cleanser();
x.dilute();
System.out.println(x);
}}最后输出的是:
ch5.Cleanser@de6ced不知道为什么错误了。谢谢了

解决方案 »

  1.   

    没错啊 就是输出这个因为你并没有覆盖原来的toString()方法你的字母小写了
    public String tostring(){ 
    return s; 
      

  2.   

    代码 没错.
    但是你并没有覆盖.toString()方法.
    public String tostring(){ 
    return s; 
    } 因为你的s 是小写的.
    改成大写就可以了。
      

  3.   

    你的字母小写了 
    public String tostring(){  
    return s;  
    }  
      

  4.   

    你最好安装一个ide,之后,你写的时候在记事本上写,然后出错了,拷贝到ide,看看什么错误!
      

  5.   

    搞不懂,请教下,Cleanser x=new Cleanser(); 
    没找到构造方法啊?
      

  6.   

    没有找到构造方法可能有2个原因,1是你把构造方法设置为private了,2是你提供了带有参数的构造方法,那么编译器就不会再为你提供无参的默认构造方法。
    所以当你Cleanser x=new Cleanser();的时候在你的类Cleanser中不存在Cleanser()这个构造方法。
      

  7.   

    没有正确覆盖toString 方法  应为大写!