当前位置:首页 > Java 语言特性 > 正文

Java优学网枚举方法教程:从基础定义到高级应用,轻松掌握枚举编程技巧

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;
}

}

Java优学网枚举方法教程:从基础定义到高级应用,轻松掌握枚举编程技巧

你可能想看:

相关文章:

  • Java优学网枚举定义短文:从基础到实战,轻松掌握枚举最佳实践2025-10-19 13:49:09
  • 文章已关闭评论!