让我说我有一个课程如下:
public class class1{
private int[] array1;
public class1(){
array1 = new int[10];
}
public int[] getArray(){
return array1;
}
}
如果我在另一个类或main中创建此类的实例并使用getArray()方法将数组分配给上层中的另一个变量然后修改那里的数组值,那么原始数组值是否正确在第一类中也要修改吗?
答案 0 :(得分:2)
是否也会修改第一个类中的原始数组值?
是的,它会被修改,因为你在调用者中获得的不是数组本身的副本,而是获得对原始数组对象的引用的副本。
并且,如果使用任何引用修改数组,则更改将反映在指向数组的所有引用中。
答案 1 :(得分:0)
是的,原始数组值也将被修改。
当您从方法返回数组的引用时。引用只是指向对象地址的指针。从方法返回时,会将其分配给另一个引用。如果使用该引用修改任何内容,则实质上是修改相同的数组,即原始数组。