为了账号安全,请及时绑定邮箱和手机立即绑定

静态变量赋值后,不是所有对象共享吗?

静态变量赋值后,不是所有对象共享吗?

qq_控心_0 2017-05-29 22:23:00
为什么main方法中输出的a的值不是30?这是结果:c=30静态方法add中的a=30main方法中的a=10代码:package hello;public class eg { static int a=10; static int b=20; public static void add(int a,int b){ int c=a+b; System.out.println("c="+c); a=c; System.out.println("静态方法add中的a="+a); } public static void main(String[] args) { add(a,b); System.out.println("main方法中的a="+a); }}
查看完整描述

3 回答

已采纳
?
精慕门9254224

TA贡献167条经验 获得超46个赞

你给方法中的型参a赋值为30,与类属性a完全没有关系!
查看完整回答
反对 回复 2017-05-30
  • qq_控心_0
    qq_控心_0
    但是我传入进去的是类变量a,然后add方法中的那个a得到相加后的c的赋值,这个a不是类变量?
  • 精慕门9254224
    精慕门9254224
    不是类变量他们的内存地址是不一样的,你改变的只是方法变量的值,类变量一直在静态区没有变过!
  • 精慕门9254224
    精慕门9254224
    你赋值给eg.a就是给类变量赋值了!
  • 3 回答
  • 0 关注
  • 1777 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信