1.概述
- 枚举类型本质上也是一种类,只不过这个类的对象是有限的、固定的几个,不能让用户随意创建.
- 例如 : 星期 : Monday Tuesday ... Sunday 三原色 : red green blue
- 若枚举类只有一个对象,则可以作为单例模式的一种实现方法.
2.实现
(1). 枚举员工工作状态
public enum Employee { BUSY, FREE, VOCATION, DIMISION; //空参构造器 }
(2). 枚举四季
public enum Season { //必须在枚举类的开头声明多个对象,对象之间用逗号隔开 SPRING("春天", "春天来了, 又到了动物交配的季节"), SUMMER("夏天", "热死我了"), AUTOMN("秋天", "秋风凉凉"), WINTER("冬天", "凌冬将至"); private String seasonName; private String seasonDesc; private Season(String seasonName, String seasonDesc) { this.seasonName = seasonName; this.seasonDesc = seasonDesc; } public String getSeasonName() { return seasonName; } public void setSeasonName(String seasonName) { this.seasonName = seasonName; } public String getSeasonDesc() { return seasonDesc; } public void setSeasonDesc(String seasonDesc) { this.seasonDesc = seasonDesc; } }
3.Enum类
- 使用enum关键字定义的枚举类,默认继承父类是java.lang.Enum类.Enun继承自Object类.
- 所以不能再显示继承其他类.否则报错
4.Enum中常用方法
- String toString() : 默认返回的是变量名.如SPRING,即Enum类中重写了Object类中的toStrimg方法,但仍然可以继续重写.
- static 枚举类型 valueOf(String name) : 可以把一个字符串转为对应的枚举类型,要求字符串必须是枚举类型对象的名字(SPRING).即拿着这个字符串去枚举类里找对应的名字的枚举类对象,找到了返回该枚举类对象,没找到就抛出异常.
- String name() : 得到当前枚举常量的名称.建议优先使用toString().