public class Counter {
static int count = 0;
Counter() {
count++;
}
public static void main(String[] args) {
new Counter();
new Counter();
new Counter();
System.out.println(Counter.count);
}
}
選択肢
- あなたの回答
- 正解
正解
C. 3
詳細解説
static フィールドはクラスに属し、全インスタンスで共有されます。Counter を 3 回生成するたびにコンストラクタで count が増えるため、最終的に 3 が表示されます。
なぜ他の選択肢が違うのか
- static フィールドはインスタンス生成の影響を受けます。初期値 0 のままではありません。
- インスタンスを 3 つ生成しているため 1 にはなりません。
- static フィールドへのアクセスは正当な構文です。
罠ポイント
インスタンスフィールドとは異なり、static フィールドは全インスタンスで値を共有します。