在Java中,构造函数是一种特殊的方法,用于初始化对象的状态。构造函数的参数传递方式主要有两种:值传递和引用传递。
示例:
class MyClass {
int x;
MyClass(int x) {
this.x = x;
}
}
public class Main {
public static void main(String[] args) {
MyClass obj = new MyClass(10);
System.out.println("obj.x: " + obj.x); // 输出:obj.x: 10
}
}
示例:
class MyClass {
int[] arr;
MyClass(int[] arr) {
this.arr = arr;
}
}
public class Main {
public static void main(String[] args) {
int[] originalArr = {1, 2, 3};
MyClass obj = new MyClass(originalArr);
System.out.println("Original array: " + Arrays.toString(originalArr)); // 输出:Original array: [1, 2, 3]
System.out.println("obj.arr: " + Arrays.toString(obj.arr)); // 输出:obj.arr: [1, 2, 3]
}
}
需要注意的是,尽管引用传递在处理对象时看起来像是传递了对象本身,但实际上仍然是传递的对象引用的副本。因此,在构造函数中对参数所做的修改会影响到原始对象,但这并不意味着可以直接修改原始对象的状态。要避免这种情况,可以使用不可变对象或深拷贝来确保原始对象的状态不会被意外修改。