「OCP Java SE 6 Programmer Practice Exams (Exam 310-065)」Assessment test 2 の問題。
与えられた:
public class WeatherTest {
static Weather w;
public static void main(String[] args) {
System.out.print(w.RAINY.count + " " + w.Sunny.count + " ");
}
enum Weather {
RAINY, Sunny;
int count = 0;
Weather() {
System.out.print("c ");
count++;
}
}
}
結果は?
A. c 1 c 1
B. c 1 c 2
C. cc 1 1
D.cc 1 2
E.cc 2 2
F. コンパイルが失敗します。
G. 実行時に例外がスローされます。
本に書かれている答えはC.
しかし、このコードを実行しようとすると、「静的フィールド WeatherTest.Weather.RAINY は静的な方法でアクセスする必要があります」というコンパイル エラーが発生します。
どちらが正しいと予想されますが、インターネット上で誰も文句を言っていないので、何か不足しているのではないかと思いますか? Javaのバージョンとか関係あるの?