2020/03/23
Javaプログラミング
目次
null
nullは何も無いことを表す値で、その読み方は「ヌル」または「ナル」で、日本では「ヌル」と発音することが多いです。
Javaソースコードと実行結果 - オブジェクトを初期化しない
それでは、以下のnullに関するJavaのソースコードと実行結果を見てください。
NullSample1.java
001 002 003 004 005 006 007 008 009 010 011 012 013 014 015 016 017
// 座標を格納するクラス class MyPoint { int x, y; } public class NullSample1 { public static void main( String[] args ) { // MyPointの配列を5つ作成 MyPoint[] pnt; pnt = new MyPoint[ 5 ]; // pnt[ n ]を表示 for ( int i = 0; i < pnt.length; i ++ ) System.out.println( "pnt[" + i + "]=" + pnt[ i ] ); } }
コンパイル ソースコードが「ANSI」の場合
C:\talavax\javasample>javac -encoding sjis NullSample1.java
コンパイル ソースコードが「UTF-8」の場合
C:\talavax\javasample>javac NullSample1.java
NullSample1を実行
C:\talavax\javasample>java NullSample1
出力結果
pnt[0]=null pnt[1]=null pnt[2]=null pnt[3]=null pnt[4]=null
Javaソースコードと実行結果 - オブジェクトを初期化する
次のJavaのソースコードは、NullSample1.javaにMyPointオブジェクトの初期化(new)を追加したものです。
NullSample2.java
001 002 003 004 005 006 007 008 009 010 011 012 013 014 015 016 017 018 019 020 021 022
// 座標を格納するクラス class MyPoint { int x, y; } public class NullSample2 { public static void main( String[] args ) { // MyPointの配列を5つ作成 MyPoint[] pnt; pnt = new MyPoint[ 5 ]; // 各オブジェクトを作成 for ( int i = 0; i < pnt.length; i ++ ) pnt[ i ] = new MyPoint(); // pnt[ n ]を表示 for ( int i = 0; i < pnt.length; i ++ ) System.out.println( "pnt[" + i + "]=" + pnt[ i ] ); } }
コンパイル ソースコードが「ANSI」の場合
C:\talavax\javasample>javac -encoding sjis NullSample2.java
コンパイル ソースコードが「UTF-8」の場合
C:\talavax\javasample>javac NullSample2.java
NullSample2を実行
C:\talavax\javasample>java NullSample2
出力結果
pnt[0]=MyPoint@1909752 pnt[1]=MyPoint@1f96302 pnt[2]=MyPoint@14eac69 pnt[3]=MyPoint@a57993 pnt[4]=MyPoint@1b84c92
Javaソースコードと実行結果 - オブジェクトを初期化して値を代入
さらに、次のJavaのソースコードは、NullSample2.javaで作成したMyPointオブジェクトの値を代入するものです。
NullSample3.java
001 002 003 004 005 006 007 008 009 010 011 012 013 014 015 016 017 018 019 020 021 022 023 024 025 026 027 028 029
// 座標を格納するクラス class MyPoint { int x, y; } public class NullSample3 { public static void main( String[] args ) { // MyPointの配列を5つ作成 MyPoint[] pnt; pnt = new MyPoint[ 5 ]; // 各オブジェクトを作成 for ( int i = 0; i < pnt.length; i ++ ) { pnt[ i ] = new MyPoint(); // x,yに値を代入 pnt[ i ].x = i; pnt[ i ].y = i * 2; } // pnt[ n ]のメンバ変数を表示 for ( int i = 0; i < pnt.length; i ++ ) { System.out.println( "pnt[" + i + "].x=" + pnt[ i ].x ); System.out.println( "pnt[" + i + "].y=" + pnt[ i ].y ); System.out.println(); } } }
コンパイル ソースコードが「ANSI」の場合
C:\talavax\javasample>javac -encoding sjis NullSample3.java
コンパイル ソースコードが「UTF-8」の場合
C:\talavax\javasample>javac NullSample3.java
NullSample3を実行
C:\talavax\javasample>java 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に値が入っていることが確認できます。
以上です。