枚举
1.1作用:
表示几个固定的值
1.2定义枚举的格式
public enum 枚举类名{//定义枚举要是用enum关键字
枚举一,枚举二,枚举三:
}
//代码示例:
public enum Demo{
SPRING, SUMMER , AUTUMN , WINTER ;
}
1.3枚举的特点
- 所有枚举类都是Enum的子类
- 我们可以通过"枚举类名.枚举项名称"去访问指定的枚举项
- 每一个枚举项其实就是该枚举的一个对象
- 枚举也是一个类,也可以去定义成员变量
- 枚举类的第一行上必须是枚举项,最后一个枚举项后的分号是可以省略的,但是如果枚举类有其他的东西,这个分号就不能省略。建议不要省略
- 枚举类可以有构造器,但必须是private的,它默认的也是private的。枚举项的用法比较特殊:枚举("");
- 枚举类也可以有抽象方法,但是枚举项必须重写该方法
1.4枚举中的方法
方法名 | 说明 |
---|---|
String name | 获取枚举项的名称 |
ordinal | 返回枚举项在枚举类中的索引值 |
compareTo | 比较两个枚举项返回索引的差值 |
toString | 返回枚举常量的名称 |
static T valueOf(Class type,String name) | 获取指定枚举类中的指定名称的枚举值 |
values() | 获取所有的枚举项 |
public static void main(String[] args) {
String name = EnumDemo.SPRING.name();
System.out.println(name);
System.out.println("------------------------------------------------------------");
int ordinal = EnumDemo.AUTUMN.ordinal();
System.out.println(ordinal);
System.out.println("------------------------------------------------------------");
int i = EnumDemo.SPRING.compareTo(EnumDemo.WINTER);
System.out.println(i);
System.out.println("------------------------------------------------------------");
String s = EnumDemo.SPRING.toString();
System.out.println(s);
System.out.println("------------------------------------------------------------");
EnumDemo spring = Enum.valueOf(EnumDemo.class, "SPRING");
System.out.println(spring);
System.out.println("------------------------------------------------------------");
EnumDemo[] values = EnumDemo.values();
for (EnumDemo value : values) {
System.out.println(value);
}
System.out.println("------------------------------------------------------------");
Season season = Enum.valueOf(Season.class, "WINTER");
System.out.println(season.name());
}