#author("2017-06-16T12:53:53+09:00","","")
#author("2017-06-22T12:54:49+09:00","","")
#navi(../)
* メンバ変数の初期値はどのような値になっているか調べる [#e69c105d]
class内のメンバ変数ですが、newした時にどのような値になっているか確認してみます。~

#contents

* プリミティブな変数とクラス変数(参照型の変数) [#aabf67c9]
以下のようなサンプルソースを作成し、コンパイルおよび実行しています。

&ref(InitVariable.java); (UTF-8 LF)
 class InitVariable {
 	private short s;
 	private int i;
 	private double d;
 	private float f;
 	private boolean b;
 	private int[] ai;
 
 	private Short Sh;
 	private Integer I;
 	private Double D;
 	private Float F;
 	private Boolean B;
 	private String St;
 	private Integer[] aI;
 
 	public static void main(String args[]) {
 		InitVariable me = new InitVariable();
 		System.out.println("short : " + me.s);
 		System.out.println("int : " + me.i);
 		System.out.println("double : " + me.d);
 		System.out.println("float : " + me.f);
 		System.out.println("boolean : " + me.b);
 		System.out.println("int[] : " + me.ai);
 
 		System.out.println("");
 
 		System.out.println("Short : " + me.Sh);
 		System.out.println("Integer : " + me.I);
 		System.out.println("Double : " + me.D);
 		System.out.println("Float : " + me.F);
 		System.out.println("Boolean : " + me.B);
 		System.out.println("String : " + me.St);
 		System.out.println("Integer[] : " + me.aI);
 	}
 }

* コンパイルして実行してみる [#rb153d59]
以下、サンプルソースをコンパイルして実行してみます。
 $ javac InitVariable.java 
 $ java InitVariable 
 short : 0
 int : 0
 double : 0.0
 float : 0.0
 boolean : false
 int[] : null
 
 Short : null
 Integer : null
 Double : null
 Float : null
 Boolean : null
 String : null
 Integer[] : null

上記の出力により、プリミティブな変数(short, int, double)は、&color(red){''0''};に初期化されているのがわかります。~
booleanの場合は、&color(red){''false''};に初期化されています。~
クラス変数(参照型変数)は、&color(red){''null''};に初期化されています。~
配列に関しては、両方とも&color(red){''null''};に初期化されています。

以上、変数の初期化値に関する調査でした。

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS