隨筆-144  評論-80  文章-1  trackbacks-0

          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 小力力力 閱讀(275) 評論(0)  編輯  收藏 所屬分類: JAVA
          主站蜘蛛池模板: 罗定市| 新闻| 萝北县| 大新县| 乐清市| 东辽县| 南溪县| 柞水县| 湾仔区| 疏勒县| 禄丰县| 聂荣县| 原阳县| 绍兴市| 盐山县| 安多县| 嘉鱼县| 呼伦贝尔市| 涟源市| 庄河市| 安塞县| 安庆市| 石景山区| 龙陵县| 射阳县| 万山特区| 威海市| 哈密市| 宜阳县| 自贡市| 克拉玛依市| 新田县| 通海县| 屏东县| 法库县| 界首市| 瑞安市| 怀宁县| 固镇县| 德化县| 灯塔市|