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

Java函数的参数形式及其传递方式

发布时间:2023-10-21 22:29:29

在Java中,函数的参数形式可以分为四种:基本类型参数、引用类型参数、可变参数和泛型参数。

1. 基本类型参数:这些参数包括int、float、double、char、boolean等基本数据类型,它们在方法调用时会被复制一份传递给函数。这意味着函数内部对参数的修改不会影响到函数外部的变量。例如:

public static void add(int a, int b) {
   a += b;
   System.out.println("函数内部a的值:" + a);
}
int num1 = 5;
int num2 = 10;
add(num1, num2);
System.out.println("函数外部num1的值:" + num1);

输出结果为:

函数内部a的值:15
函数外部num1的值:5

2. 引用类型参数:这些参数包括对象和数组,它们在方法调用时的传递方式与基本类型参数有所不同。参数的值是对象或数组的引用,实际上是指向相同对象或数组的内存地址。因此,在函数内部对参数的修改会影响到函数外部的变量。例如:

public static void changeArray(int[] arr) {
   arr[0] = 100;
   System.out.println("函数内部数组的      个元素值:" + arr[0]);
}
int[] array = {1, 2, 3};
changeArray(array);
System.out.println("函数外部数组的      个元素值:" + array[0]);

输出结果为:

函数内部数组的      个元素值:100
函数外部数组的      个元素值:100

3. 可变参数:通过在参数类型后面加上三个连续的点(...)来表示,可变参数可以接收不定数量的参数。它们被当作数组处理,在方法内部可以像操作数组一样使用。例如:

public static int sum(int... nums) {
   int result = 0;
   for (int num : nums) {
       result += num;
   }
   return result;
}
int total = sum(1, 2);
System.out.println("1和2的和:" + total);
int total2 = sum(1, 2, 3, 4, 5);
System.out.println("1、2、3、4和5的和:" + total2);

输出结果为:

1和2的和:3
1、2、3、4和5的和:15

4. 泛型参数:使用泛型参数可以在函数中定义参数的类型,在函数调用时根据实际需要传入不同类型的参数。例如:

public static <T> void printArray(T[] array) {
   for (T element : array) {
       System.out.println(element);
   }
}
String[] stringArray = {"Hello", "World"};
printArray(stringArray);
Integer[] intArray = {1, 2, 3, 4, 5};
printArray(intArray);

输出结果为:

Hello
World
1
2
3
4
5

总结起来,Java函数的参数形式包括基本类型参数、引用类型参数、可变参数和泛型参数。基本类型参数和引用类型参数传递的方式不同,可变参数可以接收不定数量的参数,而泛型参数可以在函数调用时确定参数类型。根据实际需要选择合适的参数形式和传递方式,可以灵活地编写函数来满足不同场景的需求。