【问题标题】:Access modifiers for inner classes [duplicate]内部类的访问修饰符[重复]
【发布时间】:2011-10-22 16:58:54
【问题描述】:

可能重复:
protected/public Inner Classes

我确定这个问题已经被问过了,但我找不到,所以我会问...

我很好奇私有(受保护)和公共内部类之间有什么区别。我可以使用外部类对象从包含类中使用两者。

public class A{
   private class B{

   }

   public static void main(String[] args){
     A a = new A();
     B b = a.new B();
   }
}

【问题讨论】:

  • java中是否允许使用a.new B()
  • @Eng.Fouad:是的,这就是在 Java 中实例化非静态内部类的方式。
  • 也允许使用简写形式 new A().new B()

标签: java


【解决方案1】:

仍然可以在定义它的类中访问私有内部类。

如果您有其他课程,B 将不可见:

public class C {
   public static void main(String[] args){
     A a = new A();
     B b = new B(); // compile error
   }
}

【讨论】:

  • 已经是这样了,因为 B 不是静态的...
【解决方案2】:

其实你还在A类里面,因为main方法是A类的静态方法

【讨论】:

    猜你喜欢
    • 2016-08-27
    • 1970-01-01
    • 1970-01-01
    • 2013-03-13
    • 2017-08-11
    • 2017-11-11
    • 2011-04-18
    相关资源
    最近更新 更多