1. ホーム
  2. java

[解決済み] Javaにおけるデフォルト値と初期化

2023-04-24 12:26:19

質問

ベースは 私の参照 のように、プリミティブ型はデフォルト値を持ち、オブジェクトはnullになります。あるコードの一部をテストしてみました。

public class Main {
    public static void main(String[] args) {
        int a;
        System.out.println(a);
    }
}

行の System.out.println(a); はエラーとなり、変数 a という変数を指すエラーになります。 variable a might not have been initialized であるのに対し、与えられた参考文献では integer には 0 をデフォルト値として使用します。しかし、以下のコードでは、実際に表示されるのは 0 .

public class Main {
    static int a;
    public static void main(String[] args) {
        System.out.println(a);
    }
}

最初のコードで何が間違っているのでしょうか?クラス変数はローカル変数とは違う動きをするのでしょうか?

どのように解決するのですか?

最初のコードサンプルでは amain メソッドローカル変数です。メソッドローカル変数は、使用する前に初期化する必要があります。

2つ目のコードサンプルでは a はクラスのメンバ変数であるため、デフォルト値に初期化されます。