04/01/14 11:48
つづき
引数をchangeメソッドに渡すことで、②のxに①のxを代入したことになりますが、
これは、参照先({1, 2, 3, 4, 5}配列)を渡したことになります。
つまり、changeメソッド開始時点では、
①のxと、②のxが同じ配列オブジェクトを参照していると言うことです。
しかし、changeメソッド内の x = y; によって、
②のxは、yの配列オブジェクト({11, 22, 33, 44, 55}配列)を参照することになります。
このとき、②の参照しているオブジェクトを書き換えるのではなく、
②の参照先を書き換えることに注意してください。
この結果、①のxの参照するオブジェクトは初期状態のまま保持されます。
こんな感じでいかがでしょう?