所以我不太明白枚举是什么,它是不是像一个数组,可以有所有不同的数据类型,也可以有其他数组,比如里面的对象?对不起,如果这不是一个好的格式,但这是获得答案的唯一体面的 plkace。
问问题
92 次
3 回答
2
在此处引用官方 Java 文档本身:
枚举类型是一种特殊的数据类型,它使变量能够成为一组预定义的常量。该变量必须等于为其预定义的值之一。常见示例包括指南针方向(NORTH、SOUTH、EAST 和 WEST 的值)和星期几。
请参阅http://docs.oracle.com/javase/tutorial/java/javaOO/enum.html
于 2013-10-05T20:47:13.517 回答
1
使用文件名创建枚举EnumDay.java
public enum EnumDay {
SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY,NAVEED
}
和带有文件名的测试类EnumTest.java
public class EnumTest {
EnumDay day;
public EnumTest(EnumDay day) {
this.day = day;
}
public void tellItLikeItIs() {
switch (day) {
case MONDAY:
System.out.println("Mondays are bad.");
break;
case FRIDAY:
System.out.println("Fridays are better.");
break;
case SATURDAY:
case SUNDAY:
System.out.println("Weekends are best.");
break;
case NAVEED:
System.out.println(day + " is best.");
break;
default:
System.out.println("Midweek days are so-so.");
break;
}
}
public static void main(String[] args) {
EnumTest firstDay = new EnumTest(EnumDay.MONDAY);
firstDay.tellItLikeItIs();
EnumTest thirdDay = new EnumTest(EnumDay.WEDNESDAY);
thirdDay.tellItLikeItIs();
EnumTest fifthDay = new EnumTest(EnumDay.FRIDAY);
fifthDay.tellItLikeItIs();
EnumTest sixthDay = new EnumTest(EnumDay.SATURDAY);
sixthDay.tellItLikeItIs();
EnumTest seventhDay = new EnumTest(EnumDay.SUNDAY);
seventhDay.tellItLikeItIs();
EnumTest eigththDay = new EnumTest(EnumDay.NAVEED);
eigththDay.tellItLikeItIs();
}
}
于 2013-10-05T20:51:07.853 回答
0
Java 枚举类似于类,但主要用于常量。它使用构造函数,就像类一样。我认为了解枚举如何工作的一个好方法是看一个例子。这是我在学习时写的一个小例子。
public class UseEnum {
public enum Colors {
RED("red", 1), BLUE("blue", 2), GREEN("green", 3),
YELLOW("yellow", 4), ORANGE("orange", 5), PURPLE("purple", 6),
PINK("pink", 7), WHITE("white", 8), BLACK("black", 9);
private String color = "";
private int id;
private Colors(String color, int id) {
this.color = color;
this.id = id;
}
private String getColor() {
return color;
}
private int getId() {
return id;
}
}
public static void main(String[] args) {
while(true){ //infinite loop
UseEnum ue = new UseEnum();
ue.findColor(option);
}
}
private static int option;
private UseEnum() {
try{
Scanner s = new Scanner(System.in);
System.out.print("Enter an ID: ");
option = s.nextInt();
}catch(Exception e){
System.out.println("\terror: invalid number");
System.exit(1);
}
}
private void findColor(int id) {
boolean found = false;
if(id == 10)
System.exit(0);
for(Colors c : Colors.values()) {
if(c.getId() == id) {
System.out.println("\t"+c.getColor());
found = true;
break;
}
}
if(found != true)
System.out.println("\tinvalid");
}
}
枚举可以在 switch 语句中使用,这使得它们非常有用。
我推荐这篇文章进一步阅读:javarevisited
于 2013-10-05T20:55:34.397 回答