一、枚举类的使用
1.枚举类的对象只有有限个,确定的
例如:星期:Monday(星期一)、......、Sunday(星期天)
性别:Man(男)、Woman(女)
等都可以作为枚举类的对象。
二、枚举类的实现
枚举类的实现有两种方式:
jdk1.5之前需要自定义枚举类
jdk1.5之后,enum关键字用于定义枚举类
下面分别介绍这两种方式:
2.1、自定义枚举类
1.私有化类的构造器,保证不能在类的外部创建其对象
2.在类的内部创建枚举类的实例,声明为:public static final
3.对象若有实例变量,声明为private final ,并在构造器中初始化
class Season{
//3.对象如果有实例变量,应该声明为private final,并在构造器中初始化
private final String SEASONNAME;
//1.私有化类的构造器,保证不能在类的外部创建其对象
private Season(String seasonname){
this.SEASONNAME = seasonname;
}
//2.私有化类的构造器,保证不能在类的外部创建其对象
public static final Season SPRING = new Season("春天");
public static final Season SUMMER = new Season("夏天");
public static final Season SUTUMN = new Season("秋天");
public static final Season WIMTER = new Season("冬天");
}
2.2、使用menu定义枚举类
enum SeasonEnum {
//必须在枚举类的第一行声明枚举类对象,并且枚举类对象之间以“,”分隔,以“;”结尾
SPRING("春天"),
SUMMER("夏天"),
AUTUMN("秋天"),
WINTER("冬天");
private final String seasonName;
//构造器只能使用private权限修饰符
private SeasonEnum(String seasonName) {
this.seasonName = seasonName;
}
三、枚举类的常用方法:
- values():返回枚举类型的对象数组。即可以遍历所有的枚举值。
- valuesOf():把一个字符串转为对应的枚举类对象。要求字符串必须是枚举类对象的名字。如果不是,会有运行时异常:IllegalArgumentException。
- toString():返回当前枚举类对象常量的名称
public class SeasonTest1 {
public static void main(String[] args) {
SeasonEnum summer = SeasonEnum.SUMMER;
//toString():
System.out.println(summer.toString()); //SUMMER
//values():
SeasonEnum[] values = summer.values();
for (int i = 0; i < values.length; i++) {
System.out.println(values[i]);
} //SPRING、SUMMER、SUTUMN、WINTER
//valueof()
System.out.println(summer.valueOf("WINTER"));//WINTER
}
}