关于内部类私有成员变量访问

时间:2013-02-28 01:30:31

标签: java private-members

假设有一个名为MyOuter的类,它由一个名为MyInner的简单内部类组成。在尝试学习内部类如何工作时,我试图了解外部类私有成员变量是否可以从内部类本身访问。

class MyOuter {
  private int x = 7;
  // inner class definition
  class MyInner {
    public void seeOuter() {
      System.out.println("Outer x is " + x);
    }
  } // close inner class definition
} // close outer class

根据我的分析,前面的代码是完全合法的。请注意,内部类确实正在访问外部类的私有成员。那很好,因为内心 class也是外部类的成员。就像外层的任何成员一样 (例如,实例方法)可以访问外部类的任何其他成员private 内部类(也是成员)也可以这样做。

请告知我的理由是否正确。

1 个答案:

答案 0 :(得分:2)

内部类是其封闭类的成员,可以直接访问该对象的方法和字段。有关详细信息,请参阅Nested Classes