内部类甚至可以访问外部类的私有变量/方法。那么当我试图从我的代码中的内部类对象访问外部类对象的私有方法时,为什么我收到编译器错误。
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");
}
}
}
答案 0 :(得分:3)
内部类甚至可以访问外部类的私有变量/方法。
是的,这意味着在您的InnerClass::printText
方法中,您可以致电:
OuterClass.this.printSomeText(); //private method is accessible
但是为了能够编写inner.printSomeText();
,InnerClass
需要自己的printSomeText
方法,可以在类本身中声明,也可以从父类继承。