Javaの変数の初期化処理するさまざまな方法?

ヤシュChoksi:

私はJavaがさまざまな方法で変数の初期化を取り扱うことがわかりました。

ケース-1:

class A {
    boolean x;
    public static void main(String[] args) { 
        A a = new A();
        System.out.println(a.x);
    } 
}

私はプログラム上で実行したときには、出力として、「偽」のように表示されます。しかし、今、私は、コードの他の作品を掲示しています:

ケース2:

class A {
    public static void main(String[] args) {
         boolean x;
         System.out.println(x);
    }
 } 

コード示すことの今、上記ピース

java.lang.Error: Unresolved compilation problem:
    The local variable x may not have been initialized

なぜ同じことは、非常に異なる方法で処理されますか?前もって感謝します!

マイケル・クラウス:

上のOracleのドキュメントからJavaのプリミティブデータ型

ローカル変数は若干異なります。コンパイラは、初期化されていないローカル変数にデフォルト値が割り当てられません。あなたは、それが宣言され、ローカル変数を初期化することができない場合は、あなたがそれを使用しようとする前にそれに値を代入してください。初期化されていないローカル変数にアクセスすると、コンパイル時にエラーになります。

だから、これは面白いニュアンスです。プリミティブ型の変数がローカルに宣言されている場合、あなたはそれのために値を指定する必要があります。

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=225699&siteId=1