Java函数的参数传递方式及常用技巧介绍
发布时间:2023-06-29 16:49:14
Java的函数参数传递方式有两种:传值方式和传引用方式。
1. 传值方式:基本类型的参数传递都是采用传值方式。在函数调用时,实际参数的值被复制给形式参数,形式参数对该值进行操作,不会改变实际参数的值。
例如:
public static void changeInt(int a) {
a = 10;
}
public static void main(String[] args) {
int num = 5;
changeInt(num);
System.out.println(num); // 输出结果为5
}
2. 传引用方式:对象类型的参数传递采用传引用方式。在函数调用时,实际参数的引用地址被复制给形式参数的引用,形式参数和实际参数指向同一个对象,对该对象的操作会影响到实际参数的值。
例如:
public static void changeName(Student student) {
student.setName("Tom");
}
public static void main(String[] args) {
Student stu = new Student("John");
changeName(stu);
System.out.println(stu.getName()); // 输出结果为Tom
}
对于传引用方式,常用的技巧如下:
1. 使用final关键字:在函数的形式参数中使用final关键字,可以确保传入的引用不会被修改。
例如:
public static void changeName(final Student student) {
// student = new Student("Tom"); // 错误,无法修改引用
student.setName("Tom"); // 正确,可以修改引用所指向的对象的属性
}
2. 处理可变参数:可变参数是Java 5之后引入的一种方便的语法,通过使用"..."表示,可以接受任意数量的参数。
例如:
public static void printNames(String... names) {
for (String name : names) {
System.out.println(name);
}
}
public static void main(String[] args) {
printNames("Tom", "Jerry", "Alice");
}
3. 使用包装类:如果要修改基本数据类型的值,可以使用包装类作为参数传递。
例如:
public static void changeNumber(Integer num) {
num += 10;
}
public static void main(String[] args) {
Integer num = new Integer(5);
changeNumber(num);
System.out.println(num); // 输出结果为5
}
4. 使用数组:可以使用数组作为参数传递,通过修改数组中的元素值来实现对原始数据的修改。
例如:
public static void changeArray(int[] arr) {
arr[0] = 10;
}
public static void main(String[] args) {
int[] arr = {5, 6, 7};
changeArray(arr);
System.out.println(arr[0]); // 输出结果为10
}
总结:Java的函数参数传递方式有传值方式和传引用方式,通过了解参数传递方式可以更好地理解函数的运行原理,并掌握一些常用的参数传递技巧。
