package demo.api;
enum Direction3 {
FRONT, BACK, LEFT, RIGHT;
@Override
public String toString() {
return this.ordinal() + " " + this.name();
}
}
enum Direction2 {
RIGHT("右") {
@Override
void show() {
System.out.println(getName());
}
}, LEFT("左") {
@Override
void show() {
System.out.println(getName());
}
}, BACK("后") {
@Override
void show() {
System.out.println(getName());
}
}, FRONT("前") {
@Override
void show() {
System.out.println(getName());
}
};
private String name;
private Direction2(String name) {
this.name = name;
}
String getName() {
return name;
}
abstract void show();
}
class 枚举类 {
public static void main(String[] args) {
demo();
}
private static void methodDemo() {
Direction3 d1 = Direction3.FRONT;
Direction3 d2 = Direction3.BACK;
Direction3 d3 = Direction3.LEFT;
Direction3 d4 = Direction3.RIGHT;
System.out.println(d1);
System.out.println(d1 + "比" + d2 + "大:" + d1.compareTo(d2));
System.out.println(d1 + "的名字是:" + d1.name());
System.out.println(d1 + "序数: " + d1.ordinal());
System.out.println("toString()重写:" + d1.toString());
Direction3 d = Enum.valueOf(Direction3.class, "FRONT");
System.out.println(d.name());
System.out.println("遍历枚举:");
Direction3[] direction3s = Direction3.values();
for (Direction3 dd : direction3s) {
System.out.println(dd.name());
}
}
private static void demo() {
Direction2 d = Direction2.FRONT;
System.out.println("输出枚举对象: " + d);
System.out.println("枚举对象的自定义方法 : " + d.getName());
System.out.print("枚举对象中的方法: ");
d.show();
switch (d) {
case FRONT:
System.out.println("你选择了前");
break;
case BACK:
System.out.println("你选择了后");
break;
case LEFT:
System.out.println("你选择了左");
break;
case RIGHT:
System.out.println("你选择了右");
break;
default:
}
}
}