0

可以说我有一个课程如下:

public class class1{

   private int[] array1;

   public class1(){
      array1 = new int[10];
      }

   public int[] getArray(){
      return array1;
      }
}

如果我在另一个类或 main 中创建此类的实例并使用 getArray() 方法将数组分配给上层类中的另一个变量,然后在那里修改数组的值,那么原始数组值会在第一个类也被修改?

4

2 回答 2

2

第一类中的原始数组值也会被修改吗?

是的,它将被修改,因为您在调用者中获得的不是数组本身的副本,而是您获得对原始数组对象的引用的副本。

而且,如果您使用任何引用修改数组,则更改将反映在指向该数组的所有引用上。

于 2012-12-08T08:28:06.673 回答
0

是的,原始数组值也将被修改。

当您从方法返回数组的引用时。引用只不过是指向对象地址的指针。当你从方法中返回它时,它被分配给另一个引用。如果您使用该引用修改任何东西,您实际上是在修改相同的数组,即原始数组。

于 2012-12-08T08:29:05.753 回答