public class Test
{
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;
}
}
输出是3,Why?!
參考答案:int x=5;这里的x是局部变量,不是Test的数据成员x,去掉前面的int才是将Test的数据成员x初始化成5.
因此,Test的数据成员x其实被默认初始化成0.
另外因为x、y均为整型,程序先计算了x+y+ ++x的值之后才输出!