大家帮我看看这段代码为什么得出来的结果不对呢?

meiqianmeifang 2008-05-01 05:35:55
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

不知道为什么错误了。谢谢了
...全文
53 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
loujianchengdd 2008-05-01
  • 打赏
  • 举报
回复
没有找到构造方法可能有2个原因,1是你把构造方法设置为private了,2是你提供了带有参数的构造方法,那么编译器就不会再为你提供无参的默认构造方法。
所以当你Cleanser x=new Cleanser();的时候在你的类Cleanser中不存在Cleanser()这个构造方法。
zhengpeiyong 2008-05-01
  • 打赏
  • 举报
回复
搞不懂,请教下,Cleanser x=new Cleanser();
没找到构造方法啊?
anqini 2008-05-01
  • 打赏
  • 举报
回复
你最好安装一个ide,之后,你写的时候在记事本上写,然后出错了,拷贝到ide,看看什么错误!
Brokenfango 2008-05-01
  • 打赏
  • 举报
回复
ghostme1986 2008-05-01
  • 打赏
  • 举报
回复
你的字母小写了
public String tostring(){
return s;
}
panxuan 2008-05-01
  • 打赏
  • 举报
回复
同意楼上
Shine_Panda 2008-05-01
  • 打赏
  • 举报
回复
代码 没错.
但是你并没有覆盖.toString()方法.
public String tostring(){
return s;
}

因为你的s 是小写的.
改成大写就可以了。
qqxierh 2008-05-01
  • 打赏
  • 举报
回复
没错啊 就是输出这个

因为你并没有覆盖原来的toString()方法

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

IT小岛 2008-05-01
  • 打赏
  • 举报
回复
没有正确覆盖toString 方法 应为大写!

62,616

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧