枚举的使用

来源:互联网 发布:淘宝联盟定金 编辑:程序博客网 时间:2024/05/29 19:11

枚举的用法:

枚举用关键字enum来定义,一般用于定义常量。

构造方法:

Enum(String name, int ordinal) 默认访问,程序编写者无法访问,它给每一个枚举常量都定义了一个顺序,默认从0开始。

常用方法摘要:

1.compareTo(E o)
比较此枚举与指定对象的顺序。
2. equals(Object other)
当指定对象等于此枚举常量时,返回 true。
3.getDeclaringClass()
返回与此枚举常量的枚举类型相对应的 Class 对象。
4.name()
返回此枚举常量的名称,在其枚举声明中对其进行声明。
5.toString()
返回枚举常量的名称,它包含在声明中。
6.ordinal()
返回枚举常量的序数(它在枚举声明中的位置,其中初始常量序数为0)。
7.valueOf(Class enumType,String name)
返回带指定名称的指定枚举类型的枚举常量。

Demo

/** * 枚举常量,默认调用枚举的构造方法  newEnum<EnumTest>(MONDAY,0) */public enum EnumTest {    MONDAY,    TUESDAY,    WEDNESDAY,    THURSDAY,    FRIDAY,    SATURDAY,    SUNDAY;    public static EnumTest getDay(Stringday){        return EnumTest.valueOf(day.toUpperCase());    }}public class Test1 {    public static void main(String[]args) {        //name和toString结果是一样的        for (EnumTeste : EnumTest.values()) {            //System.out.println(e.name());            System.out.println(e.toString());        }         System.out.println("=============================");        EnumTest t = EnumTest.FRIDAY;        switch(t){        case MONDAY:            System.out.println("星期一");        break;        case TUESDAY:            System.out.println("星期二");        break;        case FRIDAY:            System.out.println("星期五");        break;        default:            System.out.println(t);        break;    }    System.out.println("============================");    //compareTo()比较此枚举与指定对象的顺序    switch(t.compareTo(EnumTest.SATURDAY)){    case -1:        System.out.println("---------FRIDAY在SATURDAY之前");    break;    case 1:        System.out.println("FRIDAY在SATURDAY之后-----------");    break;    default:        System.out.println("相同==========");    break;    }     System.out.println("============================");    //getDeclaringClass()返回与此枚举常量的枚举类型相对应的Class对象    System.out.println("getDeclaringClass()"+t.getDeclaringClass());    //ordinal()返回枚举常量的序数(它在枚举声明中的位置,其中初始常量序数为零)    System.out.println("ordinal()"+t.ordinal());    EnumTest day = EnumTest.getDay("sunday");    System.out.println(day);    }}

运行结果

MONDAYTUESDAYWEDNESDAYTHURSDAYFRIDAYSATURDAYSUNDAY=============================星期五============================---------FRIDAY在SATURDAY之前============================getDeclaringClass()class com.yuanyuan.EnumTestordinal()4SUNDAY