谁能给我解释一下为什么返回值是5而不是3.
我主要是没看懂return x=3为什么不返回3.
为什么一定要用static来声明方法change.class PassValue1{
    
    public static void main(String args[]){
       int x=5;       
       change(x);
       System.out.println(x);       
    }
    static int  change(int x){
       return x=3;
    }
}
谢谢您的回答!
好心人帮解答一下.

解决方案 »

  1.   

    我也知道是值 调用啊!
    为什么不是3?  3用了return方法为什么没有返回值 呢?
      

  2.   

    值调用啊,在change方法中只是把局部变量也就是形参的值赋了个3并返回,和main函数中的X没有任何关系撒
      

  3.   

    change(x)只是调用了change()方法,在句中change方法的返回结果没有赋给变量,change中的参数x只在change中有作用,它的值不影响main中的
    改成 x=change(x);就可以
      

  4.   

    x=change(x)
    或者是在change方法中直接访问成员变量
    this.x=3;
      

  5.   

    这个函数既不是 return x; 也不是 return 3; 而是 return x=3。楼主清楚了吧。
      

  6.   

    java中的8种基本类型相互传递我个人认为都是按值传的.
    按值传的时候你看好变量的作用域就可以了在java中传数组的时候要注意哦,那是按引用传的,传完后的值是发生改变的如有问题请更正
      

  7.   

    谢谢大家的回答!
    在这里要说下对不起legnd,我是看他的帖子看明白的!
    sORRY
    我第一次发帖子,不会分配分.没能给上你分!
      

  8.   

    static来声明方法change
    是因为方法是静态方法,不需要类的实例来调用.用类来调用