[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