package www.com.cat.chapter01;
public enum JOJO {
KILLERQUEEN("吉良吉影"), STARPLATINUM("空条承太郎"), GOLDEXPERIENCE("乔巴纳");
static JOJO jojo;
private String description;
JOJO(String description) {
this.description = description;
}
@Override
public String toString() {
return name() + ":" + description;
}
public static void change() {
switch (jojo) {
case KILLERQUEEN:
jojo = STARPLATINUM;
break;
case STARPLATINUM:
jojo = GOLDEXPERIENCE;
break;
case GOLDEXPERIENCE:
jojo = KILLERQUEEN;
}
}
public static void main(String[] args) {
jojo = STARPLATINUM;
for (int i = 0; i < 3; i++) {
jojo.change();
System.out.println(jojo);
}
}
}
输出 :
GOLDEXPERIENCE:乔巴纳
KILLERQUEEN:吉良吉影
STARPLATINUM:空条承太郎
通常switch
语句只能使用整型或字符串类型的值,但是由于enum
内部已经构建了一个整型序列,并且可以通过ordinal
方法得到枚举类型的顺序(编译器做了相关的工作), 所以枚举类型可以用在switch
中。