import java.util.*;
/**
* @author Administrator
*
* TODO To change the template for this generated type comment go to
* Window - Preferences - Java - Code Style - Code Templates
*/
public class recursion
{
public String getstring()
{
return "this object address is:"+this;
}
public String toString()
{
return super.toString() ;
}
public static void main(String[] args)
{
recursion re = new recursion();
System.out.println(re.getstring());
}
}//这是thinking in java 的例程,想打印对象的地址不能在toString()函数直接return this会递归
而要调用super.toString();这样还能打印出对象的地址吗?
有没有高手指教具体的原理
/**
* @author Administrator
*
* TODO To change the template for this generated type comment go to
* Window - Preferences - Java - Code Style - Code Templates
*/
public class recursion
{
public String getstring()
{
return "this object address is:"+this;
}
public String toString()
{
return super.toString() ;
}
public static void main(String[] args)
{
recursion re = new recursion();
System.out.println(re.getstring());
}
}//这是thinking in java 的例程,想打印对象的地址不能在toString()函数直接return this会递归
而要调用super.toString();这样还能打印出对象的地址吗?
有没有高手指教具体的原理
return this;
}这时根本不能通过编译的
可以,从Object类继承下来的toString() 方法本身就可以打印出对象的地址,只不过通常此方法被我们重载罢了
return this;
}即使通过了也会是个死循环!!
就这么简单、!