是的,Java内部类可以访问外部类的成员(包括私有成员)。内部类是定义在外部类内部的类,因此它可以访问外部类的所有成员。如果内部类是静态的(使用static关键字修饰),则它只能访问外部类的静态成员。
以下是一个简单的示例,说明内部类如何访问外部类的成员:
public class OuterClass {
private int data = 10;
class InnerClass {
public void accessOuterMembers() {
System.out.println("Accessing outer class private member: " + data);
}
}
public static void main(String[] args) {
OuterClass outer = new OuterClass();
OuterClass.InnerClass inner = outer.new InnerClass();
inner.accessOuterMembers(); // 输出:Accessing outer class private member: 10
}
}
在这个例子中,InnerClass
是 OuterClass
的内部类。它可以访问外部类的私有成员 data
。在 main
方法中,我们创建了一个 OuterClass
的实例和一个 InnerClass
的实例,然后通过内部类实例访问了外部类的私有成员。