问题:下述代码,在main方法中访问x变量是否可行?程序是否可正常运行?
这不是一个特别的问题,只是猛然间看到后,第一反应错误,权且一记!
答案:在main方法中可以访问x变量,程序也可以正常运行。
解析:私有变量只能在本类作用域中才能被访问,类作用域指的是紧跟在类名之后的那对大括号之间的地方。main方法比较特殊,是Java程序的入口,但在本例中,它同时也是StaticVar类定义的静态方法,所以可以在main方法中访问到x变量。
public class StaticVar {
private static int x = 100;
public static void main(String[] args) {
int var1 = StaticVar.x;
int var2 = new StaticVar().x;
System.out.println(var1);// 100
System.out.println(var2);// 100
}
}