nullとは何か?オブジェクトが「生まれる瞬間」を理解しよう
オブジェクト指向に入ると、必ず出てくる言葉が null です。
しかし多くの初学者が、
- nullって何?
- 何が「ない」の?
- いつ生まれるの?
で混乱します。
今回は、次のコードを分解して理解します。
Person myChild;
myChild = new Person();
まずは「宣言」だけを考える
Person myChild;
これは何をしているのでしょうか?
これは
- Person型の変数を用意する
- 名前は myChild
という意味です。
ここで重要なこと:
まだオブジェクトは存在していません。
参照型の場合、このときの値は
null
です。
nullとは何か
nullとは、
「何もない」
ではありません。
正確には:
参照先が存在していない状態
です。
イメージで言うと:
- 箱はある
- でも中身の住所がまだ書かれていない
という状態です。
次にnewを実行する
myChild = new Person();
ここで初めて、
- メモリ上にPersonオブジェクトが作られる
- そのアドレスがmyChildに入る
つまり、
ここで誕生します。
この瞬間がとても重要です。
まとめて書くとどうなる?
よく見る書き方はこちらです。
Person myChild = new Person();
これは実は、
Person myChild;
myChild = new Person();
を1行にまとめただけです。
初心者のうちは、
「宣言」と「生成」を分けて理解する方が安全です。
デバッグで確認してみよう
次のコードを書いて、ブレークポイントを置いてみてください。
Person myChild;
myChild = new Person();
1行目の後で止めると:
myChild = null
と表示されます。
2行目を実行した後は:
myChild = {Person}
となります。
これが「誕生の瞬間」です。
よくある誤解
誤解①
未実行だからnullになる
これは間違いです。
- 実行前は、そもそも変数が存在していません
- 宣言を実行した時点でnullになります
誤解②
nullは空っぽ
これも違います。
nullは
「参照先がない状態」
です。
今日のポイント
- 宣言だけでは実体はない
- そのときの値はnull
- newを実行した瞬間にオブジェクトが生まれる
- まとめて1行で書いても中身は同じ
この流れが理解できれば、
オブジェクト指向の基礎はクリアです。
訪問数 4 回, 今日の訪問数 4回




ディスカッション
コメント一覧
まだ、コメントがありません