运行结果为什么是0不是1?
把打印方法写在方法里面的x++后面试试
java中i=i++问题分析
请参考:http://www.importnew.com/17056.html
里面有详细的解释,与static无关,即使不用static还是0
因为这个方法调用传入的是行参值0,方法中是对方法的参数x的自增操作,而不是静态成员变量的自增。如果修改方法不设置参数,改为name()就是1了。
因为你定义了参数x
根据就近原则,你的x++访问的是这个参数x变量,而不是成员变量x
void name(int x){
x++;//这里x累加的是局部变量x,不是类中定义静态变量x,所以累加和静态变量x无关,值不改变,还是0
}
因为你的参数名也叫x,x++ 这里是将参数x自增,不是全局变量x。 所以全局变量x里面的值还是0.
class Test
{
public static int x = 9;
public static void name(int x)
{
x ++;
System.out.println(x); //为10
}
public static void main(String[] args)
{
name(x);
System.out.println(x); //为9
}
}
x++和main方法没有直接关系
这个其实是参数传递的问题,你只是把全局变量x的值传递给了形参x,x++只对形参也就是局部参数做了自增操作,全局变量x的值还是0,当name()方法
调用完毕后,这个形参就销毁了,而你输出的却是全局变量x