从内部类访问外部类的私有方法或变量

时间:2015-04-13 08:40:01

标签: java

内部类甚至可以访问外部类的私有变量/方法。那么当我试图从我的代码中的内部类对象访问外部类对象的私有方法时,为什么我收到编译器错误。

     public class OuterClass {

private int id=5;
private void printSomeText()
{
    System.out.println("Text is ");
}


public static void main(String[] args) {
    // TODO Auto-generated method stub
    OuterClass outer = new OuterClass();
    outer.printSomeText();
    OuterClass.InnerClass inner = outer.new InnerClass();
    inner.printSomeText();// gives compiler error


}

 class InnerClass{

public void printText() {
    System.out.println("Some Text");

}
}
}

1 个答案:

答案 0 :(得分:3)

  

内部类甚至可以访问外部类的私有变量/方法。

是的,这意味着在您的InnerClass::printText方法中,您可以致电:

OuterClass.this.printSomeText(); //private method is accessible

但是为了能够编写inner.printSomeText();InnerClass需要自己的printSomeText方法,可以在类本身中声明,也可以从父类继承。