オブジェクト指向の基礎応用問題
次のコードを実行したとき、出力結果として正しいものはどれですか? class Counter { static int count = 0; Counter() { count++; } } public class Main { public static void main(String[] args) { Counter c1 = new Counter(); Counter c2 = new Counter(); Counter c3 = new Counter(); System.out.println(Counter.count); } }
A.0
✗ staticフィールドcountはインスタンス生成のたびにインクリメントされるため、0にはなりません。
B.1
✗ 3つのインスタンスが生成されるため、countは3回インクリメントされます。1にはなりません。
C.2
✗ countは3回インクリメントされます。2ではなく3になります。
D.3← 正解
✓ 正解です。staticフィールドはクラス全体で共有されるため、3つのインスタンス生成で3になります。