外部类可以访问内部类的成员吗?
2022-09-01 21:40:35
内部类是在类中定义的类,内部类可以声明为公共的、私有的、受保护的。如果将内部类定义为私有且受保护,则外部类是否可以访问内部类的成员?内部类可以访问外部类的成员吗?
内部类是在类中定义的类,内部类可以声明为公共的、私有的、受保护的。如果将内部类定义为私有且受保护,则外部类是否可以访问内部类的成员?内部类可以访问外部类的成员吗?
如果将内部类定义为私有且受保护,则外部类是否可以访问内部类的成员?
是的。这些限定符只会影响从外部类派生的类中内部类的可见性。
内部类可以访问外部类的成员吗?
是的,包括声明的那些,就像任何实例方法一样。private
通常,您可以(访问内部类上的私有字段,反之亦然)。以下代码在 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; }
}
}
也就是说,您可以将 IDE/编译器配置为将对这些字段的访问视为错误(在 Eclipse 中,此设置称为“访问封闭类型的不可访问成员”,位于“首选项 -> Java -> 编译器 -> 错误/警告 ->代码样式”下)