2020/03/23 公開
・null
nullは何も無いことを表す値で、その読み方は「ヌル」または「ナル」で、日本では「ヌル」と発音することが多いです。
具体的にはnullは、参照型のオブジェクトが初期化されていないことを表す値です。配列や文字列(String)、クラスオブジェクトを初期化していないときにnullになります。
int型、float型などのプリミティブ型はnullを持つことができません。
それでは、以下のnullに関するJavaのソースコードと実行結果を見てください。
NullSample1.java ← クリックしてダウンロードページに移動001: // 座標を格納するクラス 002: class MyPoint { 003: int x, y; 004: } 005: 006: 007: public class NullSample1 { 008: public static void main( String[] args ) { 009: // MyPointの配列を5つ作成 010: MyPoint[] pnt; 011: pnt = new MyPoint[ 5 ]; 012: 013: // pnt[ n ]を表示 014: for ( int i = 0; i < pnt.length; i ++ ) 015: System.out.println( "pnt[" + i + "]=" + pnt[ i ] ); 016: } 017: }
NullSample1の出力結果
pnt[0]=null pnt[1]=null pnt[2]=null pnt[3]=null pnt[4]=null
このプログラムでは、MyPointオブジェクトを格納するための配列を宣言しただけで、配列の要素にnewされたオブジェクトがないことを確認するものです。
この実行結果から、pnt[0]~pnt[4]がnullであることが確認できます。この状態では、MyPointオブジェクトのメンバ変数xとyに値を代入することはできません。
次のJavaのソースコードは、NullSample1.javaにMyPointオブジェクトの初期化(new)を追加したものです。
NullSample2.java ← クリックしてダウンロードページに移動001: // 座標を格納するクラス 002: class MyPoint { 003: int x, y; 004: } 005: 006: 007: public class NullSample2 { 008: 009: public static void main( String[] args ) { 010: // MyPointの配列を5つ作成 011: MyPoint[] pnt; 012: pnt = new MyPoint[ 5 ]; 013: 014: // 各オブジェクトを作成 015: for ( int i = 0; i < pnt.length; i ++ ) 016: pnt[ i ] = new MyPoint(); 017: 018: // pnt[ n ]を表示 019: for ( int i = 0; i < pnt.length; i ++ ) 020: System.out.println( "pnt[" + i + "]=" + pnt[ i ] ); 021: } 022: }
NullSample2の出力結果
pnt[0]=MyPoint@1909752 pnt[1]=MyPoint@1f96302 pnt[2]=MyPoint@14eac69 pnt[3]=MyPoint@a57993 pnt[4]=MyPoint@1b84c92
pnt[0]~pnt[4]がnullでなくなったことが確認できます。これでMyPointオブジェクトのメンバ変数xとyに値を代入する準備が整いました。
さらに、次のJavaのソースコードは、NullSample2.javaで作成したMyPointオブジェクトの値を代入するものです。
NullSample3.java ← クリックしてダウンロードページに移動001: // 座標を格納するクラス 002: class MyPoint { 003: int x, y; 004: } 005: 006: 007: public class NullSample3 { 008: 009: public static void main( String[] args ) { 010: // MyPointの配列を5つ作成 011: MyPoint[] pnt; 012: pnt = new MyPoint[ 5 ]; 013: 014: // 各オブジェクトを作成 015: for ( int i = 0; i < pnt.length; i ++ ) { 016: pnt[ i ] = new MyPoint(); 017: // x,yに値を代入 018: pnt[ i ].x = i; 019: pnt[ i ].y = i * 2; 020: } 021: 022: // pnt[ n ]のメンバ変数を表示 023: for ( int i = 0; i < pnt.length; i ++ ) { 024: System.out.println( "pnt[" + i + "].x=" + pnt[ i ].x ); 025: System.out.println( "pnt[" + i + "].y=" + pnt[ i ].y ); 026: System.out.println(); 027: } 028: } 029: }
NullSample3の出力結果
pnt[0].x=0 pnt[0].y=0 pnt[1].x=1 pnt[1].y=2 pnt[2].x=2 pnt[2].y=4 pnt[3].x=3 pnt[3].y=6 pnt[4].x=4 pnt[4].y=8
pnt[0]~pnt[4]のメンバ変数x,yに値が入っていることが確認できます。
■関連コンテンツ
Javaの変数 | Javaで扱う変数について解説 |
Javaの配列 | 同じ型の変数をまとめた配列について解説 |
![]() |
for文繰り返し処理に使用するfor文をJavaのソースコードを使って説明しています。 |
■新着情報
2022.07.07 | 外部プログラムの実行 | exeファイル実行 |
2022.07.06 | 完全数 | 6=1+2+3 |
■広告
