有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

Java方法变量

package test;

public class Main {
    static double a,b,c,d;

    public static void changeValue(double x, double y)
    {
        x=1;
        y=2;
    }

    public static void main (String args[])
    {
        changeValue(a,b);
        changeValue(c,d);
        System.out.println("a="+a+"\nb="+b+"\nc="+c+"\nd="+d);
    }

}

a,b,c,d值不变

如何更改方法参数


共 (3) 个答案

  1. # 1 楼答案

    Java支持按值传递。因此,当它将a,b,c,d传递给changeValue()方法时,它会将这些变量的值复制到x,y。因此,如果更改xy的值,它不会影响a,b,c,d

  2. # 2 楼答案

    有两个参数,你不知道你改变了什么变量

    changeValue(a,b);
    changeValue(c,d);
    

    即使将值传递给该方法也不起作用。请注意,参数是按值传递的,而不是按引用传递的。但是如果你把签名改成

    changeValue(double x, double y, double u, double w)
    

    然后你知道如何初始化类变量

    public class Main {
        static double a,b,c,d;
    
        public static void changeValue(double x, double y, double u, double w)
        {
            a = x;
            b = y;
            c = u;
            d = w; 
        } 
    
        public static void main (String args[])
        {
            changeValue(1,2,3,4);
            System.out.println("a="+a+"\nb="+b+"\nc="+c+"\nd="+d);
        }
    
    }
    
  3. # 3 楼答案

    由于Java是按值传递的(primitves和对象引用作为副本传递),因此您在方法内部所做的更改不会从调用它的位置反映出来