初期化とは

変数の宣言代入を同時にすること。

    int num;             //宣言
    num = 100;        //代入

    int data = 10;    //初期化

 

初期化を行わずに変数を宣言すると、
変数には「初期値」が格納されたままとなっている。

変数の宣言と同時に適切な値を格納することで、
「最初から有効な値が入っている」状態にする。
これが初期化

紛らわしいが、この初期化時に格納する有効な値も初期値という。

 

初期値 ( 最初から入っている値 ) は 2つある。

・宣言した時に格納してある初期値
・初期化した時に格納した初期値

つまり宣言時の初期値とは変数を作成 ( 宣言 ) 後、その中に値を入れるまでの間に格納されている値。

 

初期化と代入の違い:
初期化はコンパイル時にされるが、代入は実行時にされる。

宣言:
変数を使用できるよう、メモリ上に適切なサイズの領域を確保すること。

 

Java 言語の初期値について

プリミティブ型のほとんどは初期値0
boolean 型だけはは false
クラスや配列などの参照型の場合は null

 

この初期値をそのまま使用するとコンパイルエラーとなる。
そのため、変数を作る際には初期化を行った方が良い。

コンパイルエラー:構文が間違っている。文法レベルのエラー。
実行エラー:構文は問題ないが、実行段階で処理が継続できないエラー。

ex )

    int num;
    if( xxx )
    {
        num = 5;
    }
    int num2 = num * 100;

if文に処理が入らなかった場合、
num2 で 初期値を使用しているので、コンパイルエラーとなる。

 

Java の自動初期化

明示的に初期化しない時でも、

・メンバ変数 ( class{ } の変数 ) では自動で既定の値が入る場合がある。
ローカル変数 ( メソッド内の変数 ) 初期化しないと参照部でコンパイルエラー。

メンバ変数 ( static ありなしで呼び名が変わる )

    static なしの宣言:インスタンス変数
        インスタンス ( new ) ごとに異なる属性値を持つ変数。

    static ありの宣言:クラス変数
       どこからでも参照できる( 共有する ) 変数。Math.PI など。

 

自動で入る値

    class Hoga
    {
        int age;                   // 0
        double weight;     // 0.0
        double eye;          // null
        int
prs = new int[2];     // 0, 0
        String name;       // null
        bool flg;               // false
    }

なお、nullを参照すると、例外が発生。

 

 

こちらから。
http://www.kab-studio.biz/Programing/JavaA2Z/Word/00000061.html
http://www.kab-studio.biz/Programing/JavaA2Z/Word/00000059.html
http://edu.clipper.co.jp/pg-3-36.html
http://d.hatena.ne.jp/Nagise/20160422/1461335629
http://www.wakhok.ac.jp/~kanayama/C/01/node99.html
https://style.potepan.com/articles/3356.html

 

以上。