我有以下代码是从 Sun Certified Java Programmer 的模拟考试中截取的:
public class Static
{
static
{
int x = 5;
}
static int x,y;
public static void main(String args[])
{
x--; myMethod();
System.out.println(x + y + ++x);
}
public static void myMethod()
{
y = x++ + ++x;
}
}
测试要求您提供这一行的结果:
System.out.println(x + y + ++x);
答案是3,但我不完全明白为什么是3。如果我完全忽略,我可以得到那个答案:
static
{
int x = 5;
}
我的问题是,上面的代码片段是什么意思?为什么它不改变变量“x”的值?
最佳答案
那是一个静态初始化 block 。但这在这种情况下并不重要,因为它正在修改本地变量的值。
关于Java 静态作用域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10387581/