package com.faintbear;
public class Outer4
{
private int size = 5;
public Object makeTheInner( final int localVar )
{
final int finalLocalVar = 6;
class Inner
{
public String toString()
{
return ( "localVar=" + localVar + ">" );
}//end public String toString()
}//end class Inner
return new Inner();
}//end public Object makeTheInner( int localVar )
public static void main( String args[] )
{
Outer4 outer = new Outer4();
Object obj = outer.makeTheInner( 47 );
System.out.println( "The object is " + obj );
}
}
Inner的toString會被調用,這是肯定的.
你的 final int finalLocalVar = 6; 可以加個static,這樣可以節省一定的內存和CPU開銷. 不過好像沒有用到么,那就刪除吧.
同意樓上的
Object obj = outer.makeTheInner( 47 );
System.out.println( "The object is " + obj );
這時其實是System.out.println( "The object is " + obj.toString());
Object obj = outer.makeTheInner( 47 );
等同與
Object obj =new Inner();/////////示意一下
toString方法已經在Inner類中被重寫了
所以輸出應該是The object is localvar=47>
posted on 2005-03-10 12:00
小力力力 閱讀(266)
評論(0) 編輯 收藏 所屬分類:
JAVA