看看一个有意思的程序,你觉得它的问题在那里

scutdx2005 2007-03-11 07:11:40
程序如下,你觉得它的运行结果是怎样呢

import java.lang.*;

public class Puzzling{
public static void main(String[] args){
String s=new String("blah");
System.out.println(s);
}
}

class String{
java.lang.String s;

public String(java.lang.String s){
this.s=s;
}

public java.lang.String toString(){
return s;
}
}

这是JavaOne大会上一个专家的演讲中提到的问题,笔者不敢苟藏
...全文
240 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
limao1358 2007-03-13
  • 打赏
  • 举报
回复
原因是他把main(String[] args)中的String也理解成新建的这个类了!
iouzhui 2007-03-13
  • 打赏
  • 举报
回复
学习中~
  • 打赏
  • 举报
回复
楼上的正解
gloomyfish 2007-03-12
  • 打赏
  • 举报
回复
明显的是循环递归调用了,调用System.out.println(s);
时候,它就会导致调用它的toString方法,结果它还是返回s
当然还是去调用它的toString()结果就是无限循环往返......
我这么解释可以嘛,好像《think in java》书上提到过!
gloomyfish 2007-03-12
  • 打赏
  • 举报
回复
Exception in thread "main" java.lang.NoSuchMethodError: main

23,407

社区成员

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

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