Java Enum 枚举

会有一股神秘感。 提交于 2020-03-01 19:02:24


Enum(枚举,enumeration)

  • Enum 是 JDK1.5 新引入的特性,存放在 java.lang 包中;
  • Enum 允许用常量来表示特定的数据片段,而且全部以安全的形式来表示;
  • 详见:Class Enum<E extends Enum>

1. 常用方法

类型 方法 说明
int compareTo(E o) 比较此枚举常量与指定相邻对象的顺序,如果在指定对象前面返回-1,如果在指定对象后面返回1,其他情况返回0
Class < E > getDeclaringClass() 返回次枚举常量的枚举累心个相对应的 Class 对象
String name() 返回次枚举常量的名称
int ordinal() 返回枚举常量的序数
String toString() 返回此枚举常量的字符串,它包含在枚举声明中
<T extends Enum< T>> T valueOf(Class< T> enumType, String name) 返回带指定名称的指定枚举类型的枚举常量

2. 创建枚举

  • enum 类是抽象类,其构造方法是私有方法,故不能创建对象,也不能直接调用 Enum(String name, int ordinal) 方法;
  • 以下方法其实上调用了7次 Enum(String name, int ordinal) 方法;
enum E{
    MON, TUE, WED, THU, FRI, SAT, SUN;
}

3. 遍历

enum E {
    MON, TUE, WED, THU, FRI, SAT, SUN;
}

public class test {
    public static void main(String[] args) {
        //增强for遍历
        for (E e : E.values()) {
            System.out.print(e.toString() + " ");
        }
        System.out.println();
        E i = E.MON;
        switch (i) {
            case MON:
                System.out.println("Monday");
                break;
            case TUE:
                System.out.println("Tuesday");
                break;
            case WED:
                System.out.println("Wednesday");
                break;
            case THU:
                System.out.println("Thursday");
                break;
            case FRI:
                System.out.println("Friday");
                break;
            case SAT:
                System.out.println("Saturday");
                break;
            case SUN:
                System.out.println("Sunday");
                break;
        }
    }
}

4. Java 实例

enum E {
    MON, TUE, WED, THU, FRI, SAT, SUN;
}

public class test {
    public static void main(String[] args) {
        E e = E.WED;
        switch (e.compareTo(e.THU)) {
            case -1:
                System.out.println("WED 在 THU 前");//输出WED 在 THU 前
                break;
            case 1:
                System.out.println("WED 在 THU 后");
                break;
            default:
                System.out.println("WED 与 THU 同一位置");
                break;
        }
        System.out.println(e.name());//输出WED
        System.out.println(e.toString());//输出WED
        System.out.println(e.ordinal());//输出2,从0开始的返回值
    }
}
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!