以往的项目中总会定义一些常量提供使用,当类别较多时并不好理解和维护,jdk5后支持enum使用枚举类,能够更简洁,约束性更强。下面简单介绍下enum枚举类的使用。
一、使用enum定义枚举类的说明
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| public enum SeasonEnum { SPRING("春天","春风又绿江南岸"), SUMMER("夏天","映日荷花别样红"), AUTUMN("秋天","秋水共长天一色"), WINTER("冬天","窗含西岭千秋雪"); private final String seasonName; private final String seasonDesc; private SeasonEnum(String seasonName, String seasonDesc) { this.seasonName = seasonName; this.seasonDesc = seasonDesc; } public String getSeasonName() { return seasonName; } public String getSeasonDesc() { return seasonDesc; } }
|
- 使用enum定义的枚举类默认继承了java.lang.Enum类,因此不能够继承其他类,但可以实现接口
- 枚举类的构造器只能使用private权限修饰符,即不能通过外部生成枚举类对象
- 枚举类的所有实例必须在第一行声明,显式列出(,分割;结尾),列出的实例系统会自动添加public static final修饰
- jdk1.5中可以在switch表达式中使用Enum定义枚举类的对象作为表达式
二、enum类的主要方法
1、values()
用于返回枚举实例的对象数组,可以方便遍历当前枚举类的所有枚举值
1 2 3 4 5 6 7
| @Test public void testEnumValuesMethod(){ SeasonEnum[] seasonEnums = SeasonEnum.values(); for(SeasonEnum seasonEnum:seasonEnums){ System.out.println(seasonEnum); } }
|
2、ordinal()
返回枚举实例的序数,从0开始
3、name()
用于返回枚举类型实例名称
4、values of()
用于返回指定名称的枚举实例
5、switch
用于switch-case语句中