我有一个BCD类,里面有一个构造函数,并从myArray创建了一个名为'b'的BCD对象。当我改变myArray时,为什么Java也改变b,以及我如何使两个"独立",就像我在声明后改变myArray时,b保持不变?
public class BCD{
private int digits;
BCD(int[] digitArray){
digits = digitsArray;
public int nthDigit(int n) {
return digits[n];
}
//more methods
public static void main(String[] args) {
int[] myArray = {1,2};
BCD b = new BCD(myArray);
myArray[1]=3;
System.out.println(b.nthDigit(1));
}
克隆数组
int[] a = {1,3};
int[] b = a.clone();
a[1]=33;
System.out.println(a[1]);
System.out.println(b[1]);
你传递了一个对象引用给构造函数,因为对该对象所做的所有修改都会反映到该对象的保存引用中。