public enum Day {
MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY
}
public class EnumDemo {
public enum Color {
RED, GREEN, BLUE
}
public static void main(String[] args) {
for (Color color : Color.values()) {
System.out.println(color);
}
}
}
public enum Planet {
MERCURY(3.303e+23, 2.4397e6),
VENUS(4.869e+24, 6.0518e6),
EARTH(5.976e+24, 6.37814e6);
private final double mass; // 质量,千克
private final double radius; // 半径,米
Planet(double mass, double radius) {
this.mass = mass;
this.radius = radius;
}
public double getMass() {
return mass;
}
public double getRadius() {
return radius;
}
// 计算表面重力
public double surfaceGravity() {
final double G = 6.67300E-11;
return G * mass / (radius * radius);
}
}
public enum OrderStatus {
CREATED {
@Override
public boolean canTransitionTo(OrderStatus next) {
return next == PAID || next == CANCELLED;
}
},
PAID {
@Override
public boolean canTransitionTo(OrderStatus next) {
return next == SHIPPED || next == REFUNDING;
}
},
SHIPPED {
@Override
public boolean canTransitionTo(OrderStatus next) {
return next == COMPLETED;
}
},
COMPLETED {
@Override
public boolean canTransitionTo(OrderStatus next) {
return false; // 终态,不能转换到其他状态
}
},
CANCELLED {
@Override
public boolean canTransitionTo(OrderStatus next) {
return false;
}
},
REFUNDING {
@Override
public boolean canTransitionTo(OrderStatus next) {
return next == REFUNDED;
}
},
REFUNDED {
@Override
public boolean canTransitionTo(OrderStatus next) {
return false;
}
};
public abstract boolean canTransitionTo(OrderStatus next);
// 状态转换方法
public OrderStatus transitionTo(OrderStatus next) {
if (!canTransitionTo(next)) {
throw new IllegalStateException("不能从" + this + "转换到" + next);
}
return next;
}
}
// 方式一:接口常量 public interface ColorConstants {
int RED = 1;
int GREEN = 2;
int BLUE = 3;
String RED_NAME = "红色";
String GREEN_NAME = "绿色";
String BLUE_NAME = "蓝色";
}
// 方式二:枚举 public enum Color {
RED("红色"), GREEN("绿色"), BLUE("蓝色");
private final String name;
Color(String name) {
this.name = name;
}
public String getName() {
return name;
}
}

你可能想看: