【初心者】 Java質問・相談スレ29 【大歓迎】
■ このスレッドは過去ログ倉庫に格納されています
0532デフォルトの名無しさん
NGNG君は、二つ参照変数を作ってるでしょ?sprとsubと。
この2つは、別々のオブジェクトを指しているんだよ。
spr.set(10); で、sprが指すオブジェクトの int aを変えても、
subが指すオブジェクトのint aは変わらない。
したがって、
sub.display()
では何も代入されていないa(初期値で0が入ってる)がでる。
(1) spr.set(10); ← sprが指すオブジェクトのaに10を代入
(2) sub.display(); ← subが指すオブジェクトのaを表示(初期値だから0)
(3) sub.subset(10); ← subが指すオブジェクトのaに10を代入
(4) sub.display(); ← subuが指すオブジェクトのaを表示(今度は、(3)で変更されてるので10)
もしも(1)の前に
spr=sub;
と入れると、sprもsubも同じオブジェクトを指すようになるから、今のままでも両方10が出るよ。
あと、
ClsAの
protected int a;
を
static protected int a;
に変えると、今のままでも両方10になる。このあたりは自分で勉強しよう。
なんかすげ-長くなったな・・・
■ このスレッドは過去ログ倉庫に格納されています