您好,登录后才能下订单哦!
密码登录
登录注册
点击 登录注册 即表示同意《亿速云用户服务条款》
# Java中枚举类型如何使用
## 一、枚举类型概述
枚举(Enum)是Java 5引入的一种特殊数据类型,用于定义一组固定的常量。相比传统的常量定义方式(如`public static final`),枚举提供了更好的类型安全性和可读性。
### 基本特点
- 类型安全:编译器会检查枚举值的合法性
- 代码可读性:枚举常量具有自描述性
- 内置方法:自动继承`java.lang.Enum`类的方法
- 可实现接口:可以像普通类一样实现接口
## 二、基础用法
### 1. 简单枚举定义
```java
public enum Day {
MONDAY, TUESDAY, WEDNESDAY,
THURSDAY, FRIDAY, SATURDAY, SUNDAY
}
Day today = Day.MONDAY;
// 获取枚举名称
String name = today.name(); // "MONDAY"
// 获取枚举序数(从0开始)
int ordinal = today.ordinal(); // 0
// 字符串转枚举
Day day = Day.valueOf("TUESDAY");
// 获取所有枚举值
Day[] days = Day.values();
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; // in kilograms
private final double radius; // in meters
Planet(double mass, double radius) {
this.mass = mass;
this.radius = radius;
}
public double surfaceGravity() {
return G * mass / (radius * radius);
}
}
public interface Operation {
double apply(double x, double y);
}
public enum BasicOperation implements Operation {
PLUS("+") {
public double apply(double x, double y) { return x + y; }
},
MINUS("-") {
public double apply(double x, double y) { return x - y; }
};
private final String symbol;
BasicOperation(String symbol) {
this.symbol = symbol;
}
}
public enum Operator {
ADD {
public int apply(int a, int b) { return a + b; }
},
SUBTRACT {
public int apply(int a, int b) { return a - b; }
};
public abstract int apply(int a, int b);
}
public enum OrderStatus {
NEW {
@Override
public OrderStatus nextStatus() {
return PROCESSING;
}
},
PROCESSING {
@Override
public OrderStatus nextStatus() {
return SHIPPED;
}
},
SHIPPED {
@Override
public OrderStatus nextStatus() {
return DELIVERED;
}
};
public abstract OrderStatus nextStatus();
}
public enum Singleton {
INSTANCE;
public void doSomething() {
// 单例方法实现
}
}
public enum Calculator {
ADD {
public int calculate(int a, int b) { return a + b; }
},
SUBTRACT {
public int calculate(int a, int b) { return a - b; }
};
public abstract int calculate(int a, int b);
}
==
而不是equals()
,因为枚举值是单例Java枚举是比常量更强大的替代方案,它不仅可以表示简单的常量集合,还能通过添加属性、方法和实现接口来构建更复杂的数据结构。合理使用枚举可以使代码更安全、更清晰,并减少潜在的错误。
提示:在Java 8及以后版本中,枚举可以与Lambda表达式结合使用,实现更灵活的设计模式。 “`
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。