フィールドの初期値
出力はどれか。
public class Main {
public static void main(String[] args) {
Item item = new Item();
System.out.println(item.count + " " + item.name + " " + item.sold);
}
}
class Item {
int count;
String name;
boolean sold;
}
- A
0 null false - B
0 false - C コンパイルエラーになる
- D 実行時に例外が発生する
正解と解説を見る
正解: A
- A: フィールドには初期値が自動で入ります。int は 0、String は null、boolean は false です。
- B: null の String を連結すると、空文字ではなく "null" と表示されます。
- C: フィールドは初期化しなくても使えるので、コンパイルできます。
- D: null を文字列連結しても例外にはなりません。
ポイント
- フィールド (インスタンス変数・static 変数) には初期値が自動で入ります。
- 数値は 0、boolean は false、char は '\u0000'、参照型は null です。ローカル変数との違いがよく問われます。