参照型の変数では、オブジェクトの参照を入れる代わりに「何もない」ことを意味する特殊な値「null」を入れることができます。
このnullは条件分岐の時などに使います。有効なオブジェクトがある場合は変数に参照を入れて、有効なオブジェクトが存在しない場合は変数にnullを入れます。そして変数がnullと一致するか判定させます。
以下、模式的なプログラムを示します。
┏━━━━━━━━━━━┓ ┃オブジェクトの参照が ┃ ┃入っている変数「obj」 ┃ ┗━━━━━━━━━━━┛ ┏━━━━━━┓ if (┃obj != null ┃) { ┗━━━━━━┛ ┏━━━━━━━━━━━━━━┓ ┃System.out.println("有効"); ┃ ┗━━━━━━━━━━━━━━┛ } else { System.out.println("無効"); }
┏━━━━━━━━┓ ┃nullが入っている┃ ┃変数「obj」 ┃ ┗━━━━━━━━┛ ┏━━━━━━┓ if (┃obj != null ┃) { ┗━━━━━━┛ System.out.println("有効"); } else { ┏━━━━━━━━━━━━━━┓ ┃System.out.println("無効"); ┃ ┗━━━━━━━━━━━━━━┛ }
また、nullは、基本型の変数には入れることができません。
Javaでは、参照型の変数では、以下のように機能や値を利用できます。
参照型の変数.機能() ← 機能を利用 参照型の変数.値 ← 値を利用
しかし、変数の中身がnullの場合は、機能や値を利用することはできません。
nullが入った変数には、オブジェクトの参照は入っていません。そのため参照を使ってオブジェクトの機能や値を利用しようとするとエラーが起きます。
参照型の変数.機能() ← nullは何も参照していないので、 オブジェクトの機能は使えない 参照型の変数.値 ← nullは何も参照していないので、 オブジェクトの値は使えない