不是构造器,为什么这里会自动的返回值呢?

wxfJordan 2005-07-14 11:40:19
public class TestMyPoint
{
public static void main(String[] args)
{
MyPoint start=new MyPoint();
MyPoint end=new MyPoint();
start.x=10;
start.y=10;

end.x=20;
end.y=30;
System.out.println("Start point is "+start);
}
};

class MyPoint {
public int x;
public int y;

public String toString() {
return ("[" + x + "," + y + "]"); //方法toString()并不是构造器,为什么这里会自动的返回值呢?
}
}
...全文
101 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
dxj1234 2005-07-14
  • 打赏
  • 举报
回复
么意思撒,什么叫自动返回值?
Dan1980 2005-07-14
  • 打赏
  • 举报
回复
toString()是继承自Object的, 当一个字符串和一个Object执行相加时, 就会自动调用toString()方法返回的值. println()方法也可以直接接受Object参数, 这时也是调用toString().
interhanchi 2005-07-14
  • 打赏
  • 举报
回复
jdk文档里讲的很清楚,这里的toString被调用的条件是当你打印一个对象或已被指向对象的引用时,就会自动调用!toString方法是覆盖了object的toString方法.
rower203 2005-07-14
  • 打赏
  • 举报
回复
public String toString() {
^
| 这是返回类型,如果是void 就不能返回值。

return ("[" + x + "," + y + "]"); //方法toString()并不是构造器,为什么这里会自动的返回值呢?
}

另外构造器也不自动的返回值呀!
Preamble 2005-07-14
  • 打赏
  • 举报
回复

因为("[" + x + "," + y + "]");
会被转换为

StringBuffer sb = new StringBuffer();
sb.append("[");
.....

return sb.toString();

62,623

社区成员

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

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