0

次の図では、 がpを指していpersonます。

pという名前の関数への参照として渡されcallFunctionます。に変更を加えるpと、 にも反映されpersonますか? 説明してください。

渡された引数は、元の変数の参照値であることを理解しています(そう願っています!)。しかし、私はそれ以上考えることができません。

ここに画像の説明を入力

4

3 に答える 3

8

などの詳細を変更するpと反映されます

// Nothing done to p before this
p.changeName("Not Sanika Anymore"); // This will be reflected as both point to the same object as references are the same

新しい人を作成して割り当てると、それはp機能しません

// New Person for p
p = new Person("New Sanika"); // now this p is pointing to the newly created object's reference
p.changeName("Not Sanika Anymore"); // This won't be reflected

これは、Java が純粋 に値渡しであるためです。オブジェクトの参照を値として に渡していますcallFunction()

Eng.Fouadによるこの回答は、この概念を非常に良い方法で説明しています。

于 2013-11-01T07:50:43.003 に答える
1

はい、両方の参照が同じ Person オブジェクトを指しているためです。参照を使用して属性を変更すると、同じオブジェクトが更新されます。

于 2013-11-01T07:51:24.450 に答える