Java函数的参数传递方式和使用方式
发布时间:2023-12-07 04:04:55
Java中函数的参数传递方式有值传递和引用传递两种方式。值传递是将实参的值复制一份给形参,形参对实参的修改不会影响实参本身。引用传递是将实参的引用地址传递给形参,形参对引用地址所指向的对象进行操作,会影响实参本身。
在Java中,函数的参数传递方式是由参数的类型决定的。基本数据类型的参数传递方式是值传递,而对象类型的参数传递方式是引用传递。
值传递的使用方式是在函数内部对参数进行操作,不会影响函数外部的变量。例如:
public class Main {
public static void main(String[] args) {
int num = 10;
System.out.println("调用函数前的num值为:" + num);
changeValue(num);
System.out.println("调用函数后的num值为:" + num);
}
public static void changeValue(int num) {
num = 20;
System.out.println("函数内部的num值为:" + num);
}
}
输出结果为:
调用函数前的num值为:10 函数内部的num值为:20 调用函数后的num值为:10
可以看到,函数内部对参数进行修改,并不会影响到函数外部的变量。
引用传递的使用方式是在函数内部通过引用地址对参数所指向的对象进行操作,会影响到函数外部的变量。例如:
public class Main {
public static void main(String[] args) {
int[] arr = {1, 2, 3};
System.out.println("调用函数前的arr数组为:" + Arrays.toString(arr));
changeValue(arr);
System.out.println("调用函数后的arr数组为:" + Arrays.toString(arr));
}
public static void changeValue(int[] arr) {
arr[0] = 10;
System.out.println("函数内部的arr数组为:" + Arrays.toString(arr));
}
}
输出结果为:
调用函数前的arr数组为:[1, 2, 3] 函数内部的arr数组为:[10, 2, 3] 调用函数后的arr数组为:[10, 2, 3]
可以看到,函数内部对参数所指向的对象进行修改,会影响到函数外部的变量。
除了基本数据类型和对象类型的参数传递方式不同外,其他用法基本相同。可以在函数内部使用参数进行计算、赋值、操作对象等操作,也可以通过返回值将结果传递给函数外部。
