2011-05-01 78 views
1

我有一定的困難,與一些Java代碼方法內的局部內部類的數量是否有限制?

class foo{ 
    public bar() { 
     class innerA {} 
     class innerB {} // Only this one is valid because it was declare last 
    } 
} 

我的問題:只有最後聲明的內部類(innerB)是富::酒吧內可見的()。另外,我不能從另一個內部引用任何內部類。例如:

innerB{ 
    private innerA _a; // Error 
} 

我的問題:在方法中可以使用的本地內部類的數量有限制嗎?本地內部類是否可以實例化其他本地內部類對象?他們應該嗎?

編輯:我錯過了在我的IDE中鍵入並且有一些範圍問題......再次感謝!

TIA, 小白

回答

5

請張貼您的Java編譯器得到的代碼你真的努力做工作,和錯誤消息。您發佈的代碼不是有效的Java。你想做的一切都是可行的。這裏有一個工作示例:

public class Foo { 
    public void bar() { 
     class InnerA { 
      public void hello() { 
       System.out.println("Hello from InnerA"); 
      } 
      public String getName() { 
       return "InnerA"; 
      } 
     } 

     class InnerB { 
      private InnerA aInB = new InnerA(); 
      public void hello() { 
       System.out.println("Hello from InnerB"); 
       System.out.println("In InnerB, got name of InnerA : " + aInB.getName()); 
      } 
     } 

     InnerA a = new InnerA(); 
     InnerB b = new InnerB(); 

     a.hello(); 
     b.hello(); 
    } 

    public static void main(String[] args) { 
     new Foo().bar(); 
    } 
} 

運行它給:

Hello from InnerA 
Hello from InnerB 
In InnerB, got name of InnerA : InnerA 
+0

your're correct,I miss typinged something in the IDE。非常感謝! – certifiedNoob 2011-05-01 19:34:00

0

你忽略了指定返回類型爲bar()