1,概念
枚举其实就是一个类,枚举类的实例是一组限定的对象,也就像是一年中的十二个月,都是月份而且可数。
2,定义和语法
原理:1、构造器私有化
2、本类内部创建一组对象,添加public static修饰符,直接暴露对象
语法: 1、使用enum关键字代替class关键字
2、对象(常量)的创建必须放在枚举类中的第一句
语法:
对象名(实参列表),对象名(实参列表);
3、如果是无参构造,则无参构造的定义和实参列表都可以省略
3,源码和常见方法介绍
编译器不让我们继承Enum,但是当我们使用enum关键字定义一个枚举的时候,他会帮我们在编译后默认继承java.lang.Enum类,而不像其他的类一样默认继承Object类
toString:Enum类已经重写过了,返回的是当前对象的常量名。自定义的枚举类可以继续重写该方法
name:Enum类中的name方法返回的是当前对象的常量名(同toString),但自定义的枚举类不可以继续重写该方法
values:一个静态方法,用于返回指定的枚举类中的所有枚举常量
valueOf:一个静态方法,将一个有效的字符串转换成枚举对象
4,扩展:枚举类如何实现接口
语法:
enum A implements 接口1,接口2{
常量1(参数){
//抽象方法的实现
},常量2(参数){
//抽象方法的实现
}
//类对抽象方法的实现
}