Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 关于主题枚举的SCJP问题_Java_Scjp - Fatal编程技术网

Java 关于主题枚举的SCJP问题

Java 关于主题枚举的SCJP问题,java,scjp,Java,Scjp,从SCJP问题PDF手册中,我得到了这个问题 1. enum Animals { 2. DOG("woof"), CAT("meow"), FISH("burble"); 3. String sound; 4. Animals(String s) { sound = s; } 5. } 6. class TestEnum { 7. static Animals a; 8. public static void main(String[] args) { 9. System.out.println

从SCJP问题PDF手册中,我得到了这个问题

1. enum Animals {
2. DOG("woof"), CAT("meow"), FISH("burble");
3. String sound;
4. Animals(String s) { sound = s; }
5. }
6. class TestEnum {
7. static Animals a;
8. public static void main(String[] args) {
9. System.out.println(a.DOG.sound + " " + a.FISH.sound);
10. }
11. }
选择是,

A.纬纱

B.多个编译错误

C.由于错误,编译失败 在线2

D.由于错误,编译失败 在线3

E.由于错误,编译失败 在线4

F.由于错误,编译失败 第9行

A是正确答案

有人能解释一下吗


枚举是否可以有构造函数?

枚举是一个类。它可以有方法、构造函数、字段。。。和其他班级一样


请注意,当您编写DOG、CAT等时,您正在命名要拥有的此枚举的命名实例。如果它们有类似于此处声音的参数,则必须为相应的构造函数提供参数。

Enum是一个类。它可以有方法、构造函数、字段。。。和其他班级一样


请注意,当您编写DOG、CAT等时,您正在命名要拥有的此枚举的命名实例。如果它们有类似于此处声音的参数,则必须为相应的构造函数提供参数。

是的,允许使用枚举构造函数,但只有枚举常量可以调用它。无法添加更多枚举实例。就风格而言,构造函数应该是私有的。当然,实例字段通常应该是
private
,并且在enum
final


还需要注意的是,您可以获取静态字段并对实例表达式调用静态方法(即使它们的计算结果为
null
)。

是的,允许使用枚举构造函数,但只有枚举常量可以调用它。无法添加更多枚举实例。就风格而言,构造函数应该是私有的。当然,实例字段通常应该是
private
,并且在enum
final


还需要注意的是,您可以获取静态字段并对实例表达式调用静态方法(即使它们的计算结果为
null
)。

枚举可以有构造函数。对于示例中的所有enum选项(CAT、DOG、FISH),enum实际上就像一个超类


您可以为超类(动物)和单个枚举选项(猫、狗、鱼)定义构造函数。枚举选项构造函数可以重载或重写超类构造函数。

枚举可以有构造函数。对于示例中的所有enum选项(CAT、DOG、FISH),enum实际上就像一个超类


您可以为超类(动物)和单个枚举选项(猫、狗、鱼)定义构造函数。枚举选项构造函数可以重载或重写超类构造函数。

是的,枚举可以像其他类一样具有构造函数、方法和实例变量。 但是您不能像调用常规类那样自己调用构造函数。 你不能叫一只新狗(“Woooof”)。 编译器将为您调用构造函数


这将很好地编译,但在第9行,我认为编译器会警告您正在以非静态方式访问静态字段。Animal.DOG.sound是“正确的方式”,而不是.DOG.sound。

是的,枚举可以像其他类一样具有构造函数、方法和实例变量。 但是您不能像调用常规类那样自己调用构造函数。 你不能叫一只新狗(“Woooof”)。 编译器将为您调用构造函数


这将很好地编译,但在第9行,我认为编译器会警告您正在以非静态方式访问静态字段。Animal.DOG.sound是“正确的方式”,而不是.DOG.sound。

我上周参加SCJP考试时遇到了不少关于枚举的问题。我通常不使用它们,也没有真正修改它们,所以不要认为我在这些问题上做得那么好——尽管我仍然通过了考试:)


我知道每一次考试都会随机挑选你的问题,但出于某种原因,Enum上的问题似乎是考试作者最喜欢的…

只是想让你知道,我上周参加SCJP考试时遇到了不少关于Enum的问题。我通常不使用它们,也没有真正修改它们,所以不要认为我在这些问题上做得那么好——尽管我仍然通过了考试:)


我知道每次考试都会从一个随机的集合中挑选你的问题,但出于某些原因,关于枚举的问题似乎是考试作者最喜欢的…

(对于原始问题,枚举应该是name
Animal
(或者至少是一些单数),因为每个实例代表一种动物,而不是多种动物。)(关于原始问题,枚举应该是name
Animal
(或者至少是一些单数),因为每个实例代表一种动物,而不是多种动物。)这是正确的答案,因为它是运行时发生的事情。这是正确的答案,因为它是运行时发生的事情。