yixin5733
yixin5733
2016-01-20 08:50
采纳率: 22.2%
浏览 1.8k

java中static定义变量

运行结果为什么是0不是1?图片图片

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

9条回答 默认 最新

  • enpterexpress
    把分全给哥 2016-01-20 08:58

    把打印方法写在方法里面的x++后面试试

    点赞 评论
  • yhc19850706
    yhc19850706 2016-01-20 09:00

    java中i=i++问题分析

    请参考:http://www.importnew.com/17056.html

    里面有详细的解释,与static无关,即使不用static还是0

    点赞 评论
  • wojiushiwo945you
    毕小宝 2016-01-20 09:02
        因为这个方法调用传入的是行参值0,方法中是对方法的参数x的自增操作,而不是静态成员变量的自增。如果修改方法不设置参数,改为name()就是1了。
    
    点赞 评论
  • caozhy

    因为你定义了参数x
    根据就近原则,你的x++访问的是这个参数x变量,而不是成员变量x

    点赞 评论
  • danielinbiti
    danielinbiti 2016-01-20 09:03
     void name(int x){
       x++;//这里x累加的是局部变量x,不是类中定义静态变量x,所以累加和静态变量x无关,值不改变,还是0
     }
    
    点赞 评论
  • a510835147
    _追逐梦想_ 2016-01-20 09:04

    因为你的参数名也叫x,x++ 这里是将参数x自增,不是全局变量x。 所以全局变量x里面的值还是0.

    点赞 评论
  • lijianhuilijie
    沁杰 2016-01-20 09:21

    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
    }
    

    }

    点赞 评论
  • u011008785
    u011008785 2016-01-20 09:26

    x++和main方法没有直接关系

    点赞 评论
  • zhihan_tu
    簸箕粄 2016-01-20 09:37

    这个其实是参数传递的问题,你只是把全局变量x的值传递给了形参x,x++只对形参也就是局部参数做了自增操作,全局变量x的值还是0,当name()方法
    调用完毕后,这个形参就销毁了,而你输出的却是全局变量x

    点赞 评论

相关推荐