0

次のようにクラス属性を宣言すると:

private static String month;

コードの後半で次のようにチェックするのが正しいかどうかはわかりません。

if(month == null){
    month = "January";
}

私の主な質問は、 null は宣言されていない変数ですか?

これに対する最善のアプローチは何ですか?

前もって感謝します。

4

5 に答える 5

8

null変数ではなく、空のオブジェクト参照を表す組み込みの特殊な定数です。クラスまたはインスタンス レベルでオブジェクトを表す変数を宣言すると、その初期値は に設定されnullます。ローカル変数を宣言するときは、その値を明示的に設定する必要があります -nullまたは何らかのオブジェクトに。

于 2013-09-22T16:37:21.560 に答える
3

はい、すべてのインスタンス参照が null に初期化されるので問題ありません。

ただし、注意してください。これはインスタンス参照にのみ当てはまります。ローカルのものは常に手動で初期化する必要があります。

于 2013-09-22T16:37:19.130 に答える
1

最善の方法は、常に変数を初期化することです。そうしないと、Java が変数を null に設定するからです。Null は、初期化されていないか、意図的に null として設定されていないことを意味するオブジェクトを参照しないことを意味します

于 2013-09-22T16:37:12.247 に答える
1

null 変数は、インスタンス化されたオブジェクトを指していない参照です。SO まだ文字列を指していない文字列への参照があります。

オブジェクト参照の場合、クラス メンバー変数は null で初期化されます。メソッド内ではそうではないため、そのような状況でコンパイルするには、使用する前に初期化する必要があります。

于 2013-09-22T16:37:54.083 に答える