“OCP Java SE 6 Programmer Practice Exams (Exam 310-065)”Assesment 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
抄送 1 1
D. 抄送 1 2
E. 抄送 2 2
F. 编译失败。
G. 运行时抛出异常。
书上的答案是 C。
但是当我尝试运行此代码时,我得到编译错误,说“静态字段 WeatherTest.Weather.RAINY 应该以静态方式访问”。
这是正确和预期的,但没有人在互联网上抱怨它,所以我想知道我是否遗漏了什么?它与Java版本有关吗?