Prayer X
2019-06-25 14:21
采纳率: 33.3%
浏览 305
已采纳

为什么这个里面的NUM值没有改变?

新人小白。第一次接触JAVA ,为什么我在这里引用了foo方法后num值还是90?

public static void main(String[] args) {
    int num = 90;
    foo(num);
    System.out.println(num);
}
static void foo(int a) {
    a = 100;
    System.out.println(a);
}
  • 写回答
  • 好问题 提建议
  • 追加酬金
  • 关注问题
  • 收藏
  • 邀请回答

5条回答 默认 最新

  • 永寂如孤星 2019-06-25 14:44
    已采纳

    在声明该变量时是在某个方法中,所以该变量为局部变量
    因此在执行其他方法中将该变量作为参数传入之后更改该变量值不会对原本的变量起到影响。
    如有问题请回复。

    方式一

    public class Demo {
    
        public static void main(String[] args) {
    
            int num = 1;
            num = add(num);
    
        }
        private static int add( int a) {
            // TODO Auto-generated method stub
    
            a = 100;
    
            return a;
        }
    
    }
    

    方式二

    public class Demo {
    
        public int num = 1;
    
        public static void main(String[] args) {
    
            Demo demo = new Demo();
    
            demo.add(demo.num);
    
            System.out.println(demo.num);
    
        }
        private void add( int a) {
            // TODO Auto-generated method stub
    
            a += 100;
    
            System.out.println(a);
        }
    
    }
    
    
    
    
    评论
    解决 无用
    打赏 举报
查看更多回答(4条)

相关推荐 更多相似问题