帮忙解释一下运行结果。
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;
}
}
这点静态
static {
int x = 5;
}
到底执行没,感觉不起作用啊。
还有调用了myMethod();后,Y值跟着改了?迷惑了。
[解决办法]
- Java code
public class Static { static { int x = 5;//1、这个是局部变量和下面的x成员变量没关系 } static int x, y;//2、 public static void main(String args[]) { x--;//3、int类型初始化默认是0,x--此时x为-1 myMethod(); System.out.println(x + y + ++x);//5、此时x=1,y=0,++x和下面的一样是先将x+1此时x为2,所以结果是3 } public static void myMethod() { y = (x++) + (++x);//4、x++将x先取值-1此时x++的值为-1,,然后将x+1变成0,后面的是先将x+1此时++x为1,注意此x已经为1了,所以y=-1+1为0; }}