利用java函数实现变量传值和引用传递
发布时间:2023-06-21 04:58:02
Java中的传值有两种方式:基本数据类型的传值和引用数据类型的传值。
基本数据类型的传值是指将变量的值传递给函数,函数对该值进行操作时,只是对传递的值进行操作,并不会改变原有变量的值。如下所示:
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 = num + 5;
System.out.println("函数内部 num = " + num);
}
输出结果:
操作前 num = 10 函数内部 num = 15 操作后 num = 10
在该示例中,首先定义了一个变量num并赋值为10,然后调用changeValue函数,将num的值传递给函数,函数对传递的值进行操作并输出,但是函数执行完毕后,原有变量num的值并没有改变。
引用数据类型的传值是指将变量的地址传递给函数,函数对该地址所指向的对象进行操作时,会改变该对象的值。如下所示:
public static void main(String[] args) {
int[] arr = {1, 2, 3};
System.out.print("操作前 arr = ");
printArr(arr);
changeArr(arr);
System.out.print("操作后 arr = ");
printArr(arr);
}
public static void printArr(int[] arr) {
for (int i = 0; i < arr.length; i++) {
System.out.print(arr[i] + " ");
}
System.out.println();
}
public static void changeArr(int[] arr) {
for (int i = 0; i < arr.length; i++) {
arr[i] = arr[i] * 2;
}
System.out.print("函数内部 arr = ");
printArr(arr);
}
输出结果:
操作前 arr = 1 2 3 函数内部 arr = 2 4 6 操作后 arr = 2 4 6
在该示例中,首先定义了一个数组arr,然后调用printArr函数输出该数组,接着调用changeArr函数将该数组的地址传递给函数,函数对该地址所指向的对象进行操作并输出,函数执行完毕后原有数组的值被改变了。
总体来说,Java中函数的传值方式分为基本数据类型的传值和引用数据类型的传值。基本数据类型的传值只是传递变量的值,函数的操作并不会改变变量的值;引用数据类型的传值是传递变量的地址,函数对该地址所指向的对象进行操作时,会改变该对象的值。
