2011-05-01 76 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()