1.是用户定义的数据类型,为一组相关的常量赋予有意义的名字。
2.enum常量本身带有类型信息,即Weekday.SUN类型是Weekday,编译器会自动检查出类型错误,在编译期间可检查错误。
3.enum定义的枚举类有什么特点。
a.定义的enum类型总是继承自java.lang.Enum,且不能被继承,因为enum被编译器编译为final修饰的类。
b.只能定义出enum的实例,无法通过new操作符创建enum实例。
c.每个属性都是枚举类型的对象,类似于全局常量,定义的每个实例都是引用类型的唯一实例。
d.可以将enum类型用于switch语句。
4.可以 在enum类里编写属性,方法,构造方法(只能是private权限)。
5.注意:判断枚举常量的名字,始终使用name()不能被重写,final修饰,绝不能调用toString(),可以被重写。
5.总结
a.java使用enum定义枚举类,他被编译器编译为public final class Xxx extends Enum{ ... }。
b.通过name()方法获取定义的常量字符串,不要使用toString()。
c.因为enum本身就是class,可以编写属性,方法,构造方法。
d.enum的构造方法只能是private权限,所以建议字段声明为final。
e.enum天生具有类型信息和有限个枚举常量,所以适合用在switch语句中。