我想知道使用空块的目的是什么。例如,
static{
int x = 5;
}
public static void main (String [] args){
int i = 10;
{
int j = 0 ;
System.out.println(x); // compiler error : can't find x ?? why ??
System.out.println(i); // this is fine
}
System.out.println(j); //compiler error : can't find j
}
有人可以解释一下吗?
- 在什么情况下我们会想要使用空块。
- 所有在那个空块中的变量还是会进入
stack
吗? - 为什么它不能访问
static变量x
?
x
在静态初始化程序的作用域内声明。类似地,j
在main
内部的内部块作用域内声明。您试图解析这些符号,但它们在这些作用域中未定义。 - obataku