枚举类
特点
- 使用
enum
关键字定义,枚举类中定义了一组常量
- 枚举类为常量提供了明确的类型,即枚举类本身
- 除了枚举常量,还可以定义方法,变量,构造器
- 所有的枚举类隐式继承于
java.lang.Enum
类
- 枚举类是
final
的,不可被继承
- 枚举类可以实现接口,使用接口的方法
场景
- 常量集(固定集合的常量)
- 状态管理(用枚举表示对象的状态)
- 配合策略模式使用
- 配合
switch
控制流程
定义
public enum Day{ //定义枚举类
MONDAY,TUESDAY; //定义枚举常量
}
方法
方法 |
描述 |
name() |
返回枚举常量名 |
ordinal() |
返回枚举序列标号,默认为
|
valueOf(String name) |
根据枚举常量名称,返回对应的枚举常量 |
values() |
返回所有枚举常量的数组 |
toString() |
默认返回常量名称,可以重写 |
构造器
//枚举类定义构造器之后,需要应用到每一个枚举常量中
public enum Day{
MONDAY("星期一"),TUESDAY("星期二");
private String type;
public Day(String type){
this.type = type;
}
public String getType(){
return type;
}
}
实现接口
//枚举类实现接口之后,需要应用到每一个枚举常量中
public enum Operation implements Calculator{
ADD{
@Override
public int apply(int a,int b){
return a + b;
}
},
SUB{
@Override
public int apply(int a,int b){
return a - b;
}
}
}
public interface Calculator{
int apply(int a,int b);
}