枚举
枚举
为了简洁的表示一些固定的值,Java给出了枚举类
格式:
pulic enum s {
枚举项1, 枚举项2, 枚举项3;
}
特点
-
所有枚举类都是Enum的子类
-
我们可以通过”枚举类名.枚举项名称“去访问指定的枚举项
-
每一个枚举项其实就是该枚举的一个对象
-
枚举也是一个类,也可以去定义成员变量
-
枚举类的第一行必须是枚举项,最后一个枚举项后的分号是可以省略的
但是如果枚举类有其他的东西,这个分号就不能省略。建议不要省略
-
枚举类可以有构造器,但必须是private的,它默认的也是private的。枚举项的用法比较特殊:枚举("");
puclic enum Season{
//SPRING, SUMMER, AUTUMN, WINTER;
SPRING("春"){
}
}
-
枚举类也可以有抽象方法,但是枚举项必须重写该方法
枚举的方法
public static void main(String[] args) {
// String name() 获取枚举项的名称
String name = Season.SPRING.name();
System.out.println(name);
System.out.println("---------");
// int ordinal() 返回枚举项在枚举类中的索引值
int index1 = Season.SPRING.ordinal();
int index2 = Season.SUMMER.ordinal();
int index3 = Season.AOTUMN.ordinal();
int index4 = Season.WINTER.ordinal();
System.out.println(index1);
System.out.println(index2);
System.out.println(index3);
System.out.println(index4);
System.out.println("-------------");
// int compareTo(E o) 比较两个枚举项,返回的是索引值的差值
int result = Season.SPRING.compareTo(Season.WINTER);
System.out.println(result);
System.out.println("-----------");
// String toString() 返回枚举常量的名称
String s = Season.SPRING.toString();
System.out.println(s);
System.out.println("-----------");
// static<T> T valueOf(class<T> type, String name)
// 获取指定枚举类中指定名称的枚举值
Season spring = Enum.valueOf(Season.class,"SPRING");
System.out.println(spring);
System.out.println(Season.SPRING == spring);
System.out.println("---------");
// vlues() 获取所有的枚举项
Season[] values = Season.values();
for (Season value : values) {
System.out.println(value);
}
}