1.概念
枚举:一个特殊的类,对象是由特定的几个枚举值组成
枚举值:枚举类的对象,也是枚举类中定义的公开静态常量
2.案例:
class Gender{
public static final Gender MALE = new Gender();
public static final Gender FEMALE = new Gender();
private Gender(){}
}
enum Gender{
MALE,
FEMALE
}
3.所在类:
所有的枚举类默认继承java.lang.Enum类
4.常用的方法:
(1)values() 获得枚举中所有的枚举值
(2)ordinal() 获得枚举值的序号(从0开始)
(3)name() 获得枚举值的名字
(4)int compareTo(E o) 比较此对象与指定对象的顺序
5.枚举的特点:
(1)枚举类中的构造方法,必须是私有的
(2)枚举可以定义构造方法和普通属性,方法
enum Season{
SPRING(90), // public static final Season SPRING = new Season(90);
SUMMER(91),
AUTUMN(92),
WINTER(92) ;
private int day;
Season(int day){
this.day = day;
}
public int getDay(){
return day;
}
}
(3)枚举类默认是final类 但可以定义抽象方法,要求每个枚举值必须实现该抽象方法
enum Season{
SPRING(90){
public void play(){
System.out.println("春困");
}
}, // public static final Season SPRING = new Season(90);
SUMMER(91){
public void play(){
System.out.println("夏打盹");
}
},
AUTUMN(92){
public void play(){
System.out.println("秋乏");
}
},
WINTER(92) {
public void play(){
System.out.println("睡不醒的冬仨月");
}
};
private int day;
Season(int day){
this.day = day;
}
public int getDay(){
return day;
}
public abstract void play();
}
6.枚举的常规用途:
最常规的用途:
通常用来表示:颜色 方式 类别 状态 等
这些量的特点:数目有限 形式离散 表达又极为明确
7.枚举的优势:
(1)解决通过常量来表示离散量所带来的问题
(2)大大加强了程序的可读性,易用性和可维护性