欢迎访问宙启技术站
智能推送

Java中函数参数的传递方式有哪些

发布时间:2023-05-31 06:07:05

Java中函数参数的传递方式有值传递和引用传递。两种方式都可以传递变量,但是传递的方式不同,会影响传递的结果。

值传递

值传递是指传递的是变量的值,在调用函数时将变量的值副本复制给了一个新的变量。这个新的变量只在函数中使用,并不会改变原变量的值。也就是说,传递的只是变量的一份副本,修改这份副本不会改变原变量的值。在Java中,基本数据类型(boolean、byte、char、short、int、long、double、float)都是采用值传递的方式进行传递。

以下是一个值传递的示例:

public class Example1 {
    public static void main(String[] args) {
        int num = 10;
        
        //调用changeValue方法
        changeValue(num);
        
        //输出结果
        System.out.println(num);  //输出结果为10
    }
    
    public static void changeValue(int num) {
        num = 20;
    }
}

在这个示例中,num是一个int类型的变量,该变量的值为10。我们在main方法中调用changeValue方法,并把num作为参数传入changeValue方法。changeValue方法中定义了一个新的int类型的变量num,该变量的值为20。但是由于改变的是新变量的值,因此不会改变原变量num的值。最后输出的结果还是10。

引用传递

引用传递是指传递的实际上是变量的地址(即引用),而不是变量的值。在Java中,对象类型都是采用引用传递的方式进行传递。

以下是一个引用传递的示例:

public class Example2 {
    public static void main(String[] args) {
        int[] nums = {1, 2, 3, 4, 5};
        
        //调用changeArray方法
        changeArray(nums);
        
        //输出结果
        for(int i : nums) {
            System.out.print(i + " ");  //输出结果为2 3 4 5 6
        }
    }
    
    public static void changeArray(int[] nums) {
        for(int i=0; i<nums.length; i++) {
            nums[i]++;
        }
    }
}

在这个示例中,nums是一个int数组类型的变量,初始值为{1, 2, 3, 4, 5}。我们在main方法中调用changeArray方法,并把nums作为参数传入changeArray方法。changeArray方法中对nums数组进行了遍历并使每个元素加1。这里传递的是nums数组的引用,因此在changeArray方法中对nums数组的任何修改都会影响原数组。所以在main方法中输出的结果为{2, 3, 4, 5, 6}。

在Java中函数参数的传递方式是很重要的知识点,不同的传递方式会对程序产生不同的影响。因此,我们需要根据实际的情况选择合适的传递方式,以达到所需的效果。