在Java中,匿名内部类可以访问外部类的成员变量和方法,但是不能直接访问外部类的静态成员变量和方法。为了访问外部类的静态成员变量和方法,可以使用外部类的关键字。
例如,假设有一个外部类A,其中有一个静态成员变量x和一个静态方法y,现在在外部类A的内部创建一个匿名内部类B,如下所示:
public class A {
public static int x = 10;
public static void y() {
System.out.println("Hello, world!");
}
public void method() {
B b = new B();
}
private class B {
public void print() {
System.out.println(A.x);
A.y();
}
}
}
在上面的代码中,匿名内部类B可以通过A.x和A.y()来访问外部类A的静态成员变量和方法。这里的A.x和A.y()就是外部类的关键字。
领取专属 10元无门槛券
手把手带您无忧上云