注意事项
定义枚举类要用关键字enum
所有枚举类都是Enum的子类
枚举类的第一行上必须是枚举项,最后一个枚举项后的分号是可以省略的,但是如果枚举类有其他的东西,这个分号就不能省略。建议不要省略
枚举类可以有构造器,但必须是private的,它默认的也是private的。枚举项的用法比较特殊:枚举(“”);
枚举类也可以有抽象方法,但是枚举项必须重写该方法
枚举在switch语句中的使用
package cn.itcast_02;
public class DirectionDemo {
public static void main(String[] args) {
Direction d = Direction.FRONT;
System.out.println(d);// FRONT
// public String toString()返回枚举常量的名称,它包含在声明中。
System.out.println("-------------------------");
System.out.println("-------------------------");
Direction2 d2 = Direction2.FRONT;
System.out.println(d2);
System.out.println(d2.getName());
System.out.println("-------------------------");
Direction3 d3 = Direction3.LEFT;
System.out.println(d3);
System.out.println(d3.getName());
d3.show();
}
}package cn.itcast_02;
/*
* 通过JDK5提供的枚举类来做枚举类
*/
public enum Direction {
FRONT, BEHIND, LEFT, RIGHT;
}
package cn.itcast_02;
/*
* 通过JDK5提供的枚举类来做枚举类
*/
public enum Direction2 {
FRONT("前"), BEHIND("后"), LEFT("左"), RIGHT("右");
private Direction2(String name) {
this.name = name;
}
private String name;
public String getName() {
return name;
}
}
package cn.itcast_02;
/*
* 通过JDK5提供的枚举类来做枚举类
*/
public enum Direction3 {
FRONT("前") {
@Override
public void show() {
System.out.println("前");
}
},
BEHIND("后") {
@Override
public void show() {
System.out.println("前");
}
},
LEFT("左") {
@Override
public void show() {
System.out.println("左");
}
},
RIGHT("右") {
@Override
public void show() {
System.out.println("右");
}
};
private Direction3(String name) {
this.name = name;
}
private String name;
public String getName() {
return name;
}
public abstract void show();
}
Direction dd = Direction.FRONT;
switch (dd) {
case FRONT:
System.out.println("你选择了前");
break;
case BEHIND:
System.out.println("你选择后");
break;
case LEFT:
System.out.println("你选择左");
break;
case RIGHT:
System.out.println("你先择右");
break;
}