今天我正在阅读有关静态嵌套类的内容,由于下面的代码,我有点困惑。
class testOuter {
int x;
static class inner {
int innerVar;
public void testFunct() {
x = 0; // Error : cannot make static reference to non static field
innerVar = 10;
outerFunc(this);
}
}
static void outerFunc(SINGLETON s) {
}
}
我对静态嵌套类的理解是,它的行为就像外部类的静态成员。它只能引用静态变量,并且可以调用静态方法。从上面的代码来看,错误x=0
是可以的。
但我感到困惑的是,如果它的行为类似于静态块,那么它允许我修改不是静态的 innerVar,以及它如何拥有这个指针。因此,如果嵌套类是静态的,那么内部的方法还是不是隐式静态的?