Java基础之枚举(enum)
定义**:被enumerate关键词修饰的类型就是枚举;如果枚举不添加任何方法,枚举默认值从0开始有序数值。
枚举的好处:可以将常量组织起来,统一进行管理。
枚举的典型应用场景:错误码、状态机等
特性:除了不能继承,基本上可以将 enum 看做一个常规的类。
Java 不允许使用 = 为枚举常量赋值
枚举可以添加普通方法、静态方法、抽象方法、构造方法
枚举可以实现接口,但不能继承
常用方法:
a. compareTo(E o) : 比较枚举元素的顺序
b. equals(Object obj) : 判断枚举元素是否相同
c. name() : 获取元素定义时的名称
d. ordinal() : 获取枚举元素被定义时的顺序,从0开始计算
//定义枚举类
public enum Week {
MONDY,TUESDAY,WEdNESDAY,THURSDAY,FRIDAY,SATURDAY,SUNDAY;
}
测试
public static void main(String[] args) {
getWeekInfo(Week.FRIDAY);
getWeekInfo(Week.MONDY);
}
运行结果:
FRIDAY
MONDY
如何让运行结果打印中文的星期呢,思路:
- System.out.println(Week.SATURDAY);调用的是枚举对象的toString()方法,重写toString()方法
- 要在构造枚举对象的时候传入中文的星期,重写枚举类的构造方法
public enum Week {
MONDY("星期一"),
TUESDAY("星期二"),
WEdNESDAY("星期四"),
THURSDAY("星期四"),
FRIDAY("星期五"),
SATURDAY("星期六"),
SUNDAY("星期天");
private String name;
Week(String name) {
this.name = name;
}
@Override
public String toString() {
return name;
}
}