0

以下のようなクラスがあるとしましょう:

public class class1{

   private int[] array1;

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

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

このクラスのインスタンスを別のクラスまたはメインで作成し、getArray() メソッドを使用して配列を上位クラスの別の変数に割り当て、そこで配列の値を変更すると、最初の配列の元の配列値はクラスも変更されますか?

4

2 に答える 2

2

最初のクラスの元の配列値も変更されますか?

はい、変更されます。呼び出し元で取得するものは配列自体のコピーではなく、元の配列オブジェクトへの参照のコピーを取得するためです。

また、任意の参照を使用して配列を変更すると、変更は配列を指しているすべての参照に反映されます。

于 2012-12-08T08:28:06.673 に答える
0

はい、元の配列値も変更されます。

メソッドから配列の参照を返すように。参照は、オブジェクトのアドレスへのポインタに他なりません。メソッドから返すと、別の参照に割り当てられます。その参照を使用して何かを変更すると、本質的に同じ配列、つまり元の配列を変更することになります。

于 2012-12-08T08:29:05.753 に答える