枚举
1.1 简介
枚举是在jdk1.5之后新出现的一种类型。枚举使用一组常量数据来表示特定的数组集合。而且枚举提供了比常量更多的方法,用于定义有限数量的一组同类常量,例如:
错误级别:
低、中、高、急
一年的四季:
春、夏、秋、冬
商品的类型:
美妆、手机、电脑、男装、女装...
在枚举类型中定义的常量是该枚举类型的实例。
1.2 枚举的定义
权限修饰符 enum 枚举名称 {
实例1,实例2,实例3,实例4;
}
举例如下:
1 public enum Level{ 2 LOW(30), MEDIUM(15), HIGH(7), URGENT(1); 3 private int levelValue; 4 private Level(int levelValue) { 5 this.levelValue = levelValue; 6 } 7 public int getLevelValue() { 8 return levelValue; 9 } 10 }
1.3 注意事项
-
枚举类对象的属性不应该允许被改动,最好使用
private final修饰,应该在构造器为其赋值; -
必须在枚举类的第一行声明枚举类对象(实例);
-
枚举类的构造器只能使用
private访问修饰符;枚举类的所有实例必须在枚举类中显式列出,以逗号","分隔,以分号";"结尾; -
如果枚举类定义了带参数的构造器,则在列出枚举类时,也必须对应的传入参数;
-
枚举类名建议带上
Enum后缀,枚举实例名称需要全大写,单词间用下划线隔开。
1.4 枚举的特点
-
枚举的直接父类是java.lang.Enum,但是不能显示的继承Enum;
-
-
默认私有的构造方法,即使不写访问权限也是
private -
每个实例分别用于一个全局常量表示,枚举类型的对象是固定的,实例个数有限,不能使用new关键字;
-
枚举实例必须位于枚举中最开始部分,枚举实例列表的后面要有分号月其他成员相分隔;
-
枚举实例后有花括号时,该实例是枚举的匿名内部类对象。
1.5 枚举类的主要方法
Enum抽象类常用方法
Enum类是所有Java枚举类的公共抽象类,它 的常用方法如下:
![]()
1.6 实现接口的枚举类
所有的枚举都继承自java.lang.Enum类。由于Java 不支持多继承,所以枚举对象不能再继承其他类。
每个枚举对象,都可以实现自己的抽象方法 。
1 public interface LShow{ 2 void show(); 3 } 4 public enum Level implements LShow{ 5 LOW(30){ 6 @Override public void show(){ 7 //... 8 }}, MEDIUM(15){ 9 @Override public void show(){ 10 //... } },HIGH(7){ 11 @Override public void show(){ 12 //... } },URGENT(1){ 13 @Override public void show(){ 14 //... } };private int levelValue; 15 16 private Level(int levelValue) { 17 this.levelValue = levelValue; 18 } 19 public int getLevelValue() { 20 return levelValue; 21 } 22 }
-


浙公网安备 33010602011771号