访问另一个类的数组变量

时间:2012-12-08 08:26:11

标签: java arrays scope

让我说我有一个课程如下:

public class class1{

   private int[] array1;

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

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

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

2 个答案:

答案 0 :(得分:2)

  

是否也会修改第一个类中的原始数组值?

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

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

答案 1 :(得分:0)

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

当您从方法返回数组的引用时。引用只是指向对象地址的指针。从方法返回时,会将其分配给另一个引用。如果使用该引用修改任何内容,则实质上是修改相同的数组,即原始数组。