分析以下静态块中的一些奇怪场景:
static {
System.out.println("Inside Static Block");
i=100; // Compilation Successful , why ?
System.out.println(i); // Compilation error "Cannot reference a field before it is defined"
}
private static int i=100;
虽然相同的代码在使用时工作正常:
static {
System.out.println("Inside Static Block");
i=100; // Compilation Successful , why ?
System.out.println(MyClass.i); // Compiles OK
}
private static int i=100;
不确定为什么变量初始化不需要使用类名访问变量而 SOP 需要?