【发布时间】:2021-11-07 21:10:32
【问题描述】:
以下程序打印了什么?
`
public class Deer {
enum Food {APPLES, BERRIES, GRASS}
protected class Diet {
private Food getFavorite() {
return Food.BERRIES;
}
}
public static void main(String[] seasons) {
switch(new Diet().getFavorite()) {
case APPLES: System.out.print("a");
case BERRIES: System.out.print("b");
default: System.out.print("c");
}
}
}
答案图片来自 OCP 测试库,我在其中准备 Oracle 认证考试
我的问题是我不能同意甲骨文公司认为正确的答案
我认为最正确和准确的选项是D。
我的论点: main 方法对于 Diet 类的不当声明是无罪的。当我们在 switch 语句中错误地键入此类时会发生错误,在声明类的时刻
图片中的完整答案也解释了这一点
我创建这个问题是因为付费考试的每一个分数都受到威胁
我认为专业的商务公司会认真对待问题的起草
应试者如何应对这种情况?
请您告诉我,在 IT 认证考试中出现这种模棱两可的答案很常见吗?
提前致谢!
【问题讨论】:
-
"main 方法不因不当的 Diet 类声明 而有罪。"但是内部
Diet类已正确声明(如果您删除main方法,您将看到其余代码将正常编译)。问题是它是如何在main方法中使用 - 因为内部类需要外部类的实例来实例化(这里是Deer)。您在阅读解释时是否混淆了Dear和Diet?或者也许是通过创建实例来声明类? -
不如你试试看编译错误是什么?
标签: java oracle enums switch-statement main