一个简单的程序,发生的奇怪问题,大家来看看!!

wren4255 2008-03-17 03:50:55
import java.io.*;
import java.util.*;
public class wren4255
{
private String msg;
public wren4255() { this("good morning"); }
public wren4255(String msg) { this.msg = msg; }
public String toString() { return ("msg:" + msg); }

public static void main(String args[]){
System.out.print(new wren4255());
}
}


结果是 msg:good morning

我认为,程序没有执行public String toString() 函数,怎么会输出东西呢??
...全文
124 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
guxiangzhang 2008-03-17
  • 打赏
  • 举报
回复
支持一楼的 !
yyb0815 2008-03-17
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 fulianglove 的回复:]
把我钩进来。。。。。。。。。。。
[/Quote]
ooo19841080xinxin 2008-03-17
  • 打赏
  • 举报
回复

toString()原来是这样用的~~
Frank1982 2008-03-17
  • 打赏
  • 举报
回复
这个函数自动调用了toString()函数
fulianglove 2008-03-17
  • 打赏
  • 举报
回复
把我钩进来。。。。。。。。。。。
quanc_java 2008-03-17
  • 打赏
  • 举报
回复
不自动调用,System.out.print(new wren4255()); 这句就没意义了
看多了自然会知道.
awusoft 2008-03-17
  • 打赏
  • 举报
回复
public void print(Object obj) {
write(String.valueOf(obj));
}


----------------

public static String valueOf(Object obj) {
return (obj == null) ? "null" : obj.toString();
}
awusoft 2008-03-17
  • 打赏
  • 举报
回复
看了一下JDK的源代码,是调用String.valueOf(o);
然后是在String的valueOf(Object o)中调用这个o.toString()方法的.
zsq007zsq007 2008-03-17
  • 打赏
  • 举报
回复
up
Squall1009 2008-03-17
  • 打赏
  • 举报
回复
会自动调用.toString()
gongyali2005 2008-03-17
  • 打赏
  • 举报
回复
会自动调用TOSTRING方法.楼上正解.

就像J2EE里的回调方法一样.
awusoft 2008-03-17
  • 打赏
  • 举报
回复
System.out.print(new wren4255()); 这个地方会自动调用new wren4255()的toString()方法.一点不怪.是你经验不足.

62,623

社区成员

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

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