枚举类
- 枚举是一种引用数据类型;
- 枚举类的对象是有限且固定的;
- 可以在枚举类中直接列举对象;
- 枚举的属性是默认用public static final 修饰的;
- 构造方法是用private修饰的;
- 枚举类默认继承Enum类,间接继承Object类;
- 自己定义的枚举类不能extends别的类,但是可以implements别的类;
补充:
Enum类的一些常用方法:
name() 返回的是对象的名字;
ordinary()返回的是枚举对象在类中罗列的顺序,从0开始,类似于index;
valueOf(String name)返回对应name的枚举对象;
values()获取全部枚举对象,返回的是一个数组;
compareTo()比较两个枚举对象的大小,若返回整数,则前者大;若返回负数,则后者大;若返回0 ,则两者相等;
toString()这个方法不是用final修饰的,所以可以在自己定义的类中重写;
public enum EnumWeek {
Monday("星期一"),Tuesday("星期二"),Wednesday("星期三"),Thursday("星期四"),Friday("星期五"),Saturday("星期六"),Sunday("星期日");
private String date;
EnumWeek(String date) {
this.date = date;
}
}
上面一段代码就是一个枚举类,可以看出,枚举类的里面只存放一些给定的常量值;
public static void main(String[] args) {
System.out.println(EnumWeek.Friday.compareTo(EnumWeek.Saturday));
//如果枚举类中 Friday在Saturday的前面,则返回负数
//如果枚举类中 Saturday在Friday的前面,则返回正数
//如果两个位置一样 两个枚举对象是同一个对象,那么返回0
}
下面是打印结果
System.out.println(EnumWeek.Friday.name());
打印结果如下:
EnumWeek[] values = EnumWeek.values();
for (EnumWeek value : values) {
System.out.println(value.toString());
}
打印结果如下:
System.out.println(EnumWeek.valueOf("Friday"));
打印结果如下: