[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[jfriends] Re: [jfriends] Re:ポインターと参照
>> Object o1; // この段階ではまだ全く初期化されていない
>つまり、o1(アドレス(参照)格納用)のメモリは確保されていない?
入れ物 ( o1 そのもの) は確保されています。中身が入ってない状態です。
>> o1 = null; // 空のオブジェクトを参照している(つまり何も指していない)
>o1のメモリは確保されたが、o1のメモリには何も入っていない
null を代入したということは、
「指しているものが空である」ということが明示的に分かる状態になったということです。
代入前には、「何を指していたかわからない」状態だったわけです。
>> o1 = new Object(); // あるオブジェクトを参照している(やっと実体を保持するようになった)
>o1のメモリ内に、new Object()で作られたオブジェクトの参照(アドレス)が入っ
>た。
>と、いう事なのかしら?
そうです。
>> Object[] o = new Object[1]; // Object型の要素数1の配列として初期化された。
>> こうです。o[] でないところがミソです。
>つまり、o[0] = null という事ですね。
Object[] o = new Object[1]; の段階では、配列の要素数が決まっただけです。
配列要素の中身についてはまだ何も確定していません。
この段階では o[0] (つまり Object の配列の先頭要素) はまだ null すら入っていません。
つまり「何を指しているかわからない」状態です。
o[0] = null; と代入式を書けば、やっと「指しているものが空である」という意味になります。
------------------------------------------------------------------
遠藤靖之 (えんどう やすゆき) <yasuyuki@xxxxxxxxxx>
http://www.freepage.total.co.jp/jfriends/ (Java互助会ホームページ)
株式会社タイムインターメディア 情報通信サービス部 TEL 03-5362-9009
〒162-0065 新宿区住吉町3-11 新宿スパイアビル FAX 03-5362-9008