Java函数的参数传递机制及分类
发布时间:2023-07-02 20:12:47
Java函数的参数传递机制是按值传递。即传递给函数的是实际参数的拷贝,而不是实际参数本身。当我们调用一个函数时,将实际参数的副本传递给函数,函数中对参数进行的操作不会改变实际参数的值。
Java中的参数分为基本类型和引用类型两种。
1. 基本类型参数传递机制:
基本类型的参数传递是将实际参数的值拷贝一份给形式参数。在函数中对形式参数进行修改不会影响到实际参数的值。
例如:
public static void changeInt(int num) {
num = 10;
}
public static void main(String[] args) {
int num = 5;
changeInt(num);
System.out.println(num); // 输出结果为5,没有改变
}
2. 引用类型参数传递机制:
引用类型的参数传递是将实际参数的副本拷贝一份给形式参数,但实际参数和形式参数指向同一个对象。在函数中如果对形式参数指向的对象进行修改,会改变实际参数指向的对象。
例如:
public static void changeArray(int[] arr) {
arr[0] = 100;
}
public static void main(String[] args) {
int[] arr = { 1, 2, 3 };
changeArray(arr);
System.out.println(arr[0]); // 输出结果为100,改变了实际参数的值
}
需要注意的是,对于引用类型的参数,虽然可以改变实际参数指向的对象的属性值,但如果在函数中直接将形式参数指向另外一个对象,那么实际参数的值是不会改变的。因为这只是改变了形式参数的引用,对实际参数没有影响。
例如:
public static void changeReference(StringBuilder sb) {
sb = new StringBuilder("Hello");
}
public static void main(String[] args) {
StringBuilder sb = new StringBuilder("Java");
changeReference(sb);
System.out.println(sb.toString()); // 输出结果为"Java",没有改变
}
总结起来,Java函数的参数传递机制是按值传递,对于基本类型的参数无法直接改变实际参数的值,而对于引用类型的参数,可以改变实际参数指向的对象的属性值,但无法直接改变实际参数的引用。
