-6

所以我不太明白枚举是什么,它是不是像一个数组,可以有所有不同的数据类型,也可以有其他数组,比如里面的对象?对不起,如果这不是一个好的格式,但这是获得答案的唯一体面的 plkace。

4

3 回答 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 回答