内部类是在类中定义的类,内部类可以声明为public,private,protected.如果内部类定义为private和protected,外层类可以访问内部类的成员吗?并且内部类可以访问外部类的成员吗?
Ita*_*man 24
通常,您可以(访问内部类的私有字段,反之亦然).以下代码在Eclipse下编译:
public class Outer {
private int x;
public void f() {
Inner inner = new Inner();
inner.g();
inner.y = 5;
}
private class Inner {
private int y;
public void g() { x = 5; }
}
}
Run Code Online (Sandbox Code Playgroud)
也就是说,您可以配置IDE /编译器来处理对错误等字段的访问(在Eclipse中,此设置称为"访问封闭类型的不可访问成员",在Preferences - > Java - > Compiler - > Error /下)警告 - >代码风格)
Abd*_*ahC 20
如果内部类定义为private和protected,外层类可以访问内部类的成员吗?
是.这些限定符只会影响从外部类派生的类中内部类的可见性.
内部类可以访问外部类的成员吗?
是的,包括声明的那些private,就像任何实例方法一样.