Java内部类可以访问外部类的成员变量,包括实例变量和静态变量。访问外部类实例变量时,内部类实例必须先创建,而访问外部类静态变量时,内部类可以直接访问。
示例代码如下:
public class OuterClass {
private int outerVar = 10;
private static int outerStaticVar = 20;
class InnerClass {
public void accessOuterVar() {
System.out.println("Accessing outerVar from InnerClass: " + outerVar);
}
public void accessOuterStaticVar() {
System.out.println("Accessing outerStaticVar from InnerClass: " + outerStaticVar);
}
}
public static void main(String[] args) {
OuterClass outer = new OuterClass();
OuterClass.InnerClass inner = outer.new InnerClass();
inner.accessOuterVar(); // Output: Accessing outerVar from InnerClass: 10
inner.accessOuterStaticVar(); // Output: Accessing outerStaticVar from InnerClass: 20
}
}
在上面的示例中,内部类InnerClass
可以访问外部类OuterClass
的实例变量outerVar
和静态变量outerStaticVar
。需要注意的是,内部类实例访问外部类实例变量时,必须先创建外部类实例,然后通过该实例创建内部类实例。