简介
Java在1.5之后引入了枚举这一新的类型。枚举用于表示有限数量的一组同类常量。
举例说明:
(1)错误的级别:高、中、低。
(2)季节:春、夏、秋、冬。
定义格式
枚举定义第1种格式(常见的定义方式)
权限修饰符 enum 枚举名称 {
实例1,实例2,实例3;
}
public enum Level {
LOW,MIDDLE,HIGH; //直接从字面意思即可看出级别
}
枚举定义第2种格式(类似1.5之前的写法,语法更简单)
public enum Level {
//创建对象,小括号即表示构造方法
LOW(1),MIDDLE(50),HIGH(100);
private int levelValue;
//将构造方法私有,防止外部的修改添加
private Level(int levelValue) {
this.levelValue = levelValue;
}
public int getLevelValue() {
return levelValue;
}
public void setLevelValue(int levelValue) {
this.levelValue = levelValue;
}
}
枚举常用方法
Enum是所有Java语言枚举类型的基本公共类(注意Enum是抽象类)。Enum是抽象类,所有的枚举类都继承了这个类,以下是它的常见方法。
枚举注意事项
- 一旦定义了枚举,最好不要妄图修改里面的值,除非修改是必要的。
- 枚举类默认继承的是java.lang.Enum类而不是Object类。
- 枚举类不能有子类,因为其枚举类默认被final修饰。
- 只能有private构造方法。
- switch中使用枚举时,直接使用常量名,不用携带类名。
- 不能定义name属性,因为自带name属性。
- 不要为枚举类中的属性提供set方法,不符合枚举最初设计初衷。
补充:1.5之前枚举类型的写法
public class Level {
public static final Level LOW = new Level(1);
public static final Level MIDDLE = new Level(1);
public static final Level HIGH = new Level(1);
private int levelValue;
//将构造方法私有,防止外部的修改添加
private Level(int levelValue) {
this.levelValue = levelValue;
}
public int getLevelValue() {
return levelValue;
}
public void setLevelValue(int levelValue) {
this.levelValue = levelValue;
}
}
使用实现
public static void main(String[] args) {
System.out.println(Level.HIGH.getLevelValue());
}
运行结果