1.什么是枚举
枚举一般用于值少且固定不变的情况下,它的每一个属性都是这个枚举类的实例对象
2.枚举的声明
访问修改符 enum 枚举类名 {
枚举属性;
}
注意:最后的这个分号如果后面没有别的方法或属性,那么这个分号可以省略,否则分号不能省略。一般来说都会把分号带上
例如:定义一个表示性别的枚举类型 SexEnum 和一个表示颜色的枚举类型 Color
public enum SexEnum {
Male, Female
}
使用我们创建的枚举
public class SexEnumDemo {
public static void main(String[] args) {
System.out.println(SexEnum.Male);
System.out.println(SexEnum.Male.name());
}
}
上述代码都会执行后输出 Male ,从输出的结果可以发现,执行 SexEnum.Male 和 SecEnum.Male.name() 是等效的,其实在底层,当我们执行 SexEnum.Male 时,它会调用 name() 方法
总结:每个枚举对象都有一个 name() 方法来输出这个枚举对象的对应的值
3.枚举类方法
Java 中的每一个枚举都继承自 java.lang.Enum 类。当定义一个枚举类型时,每一个枚举类型成员都可以看作是 Enum 类的实例,这些枚举成员默认都被 final、public, static 修饰,当使用枚举类型成员时,直接使用枚举名称调用成员即可
所有枚举实例都可以调用 Enum 类的方法,常用方法如下图所示
4.为枚举添加方法
Java 为枚举类型提供了一些内置的方法,同时枚举常
量
也可以有自己的方法。此时要注意必须在枚举实例的最后一个成员后添加分号,而且必须先定义枚举实例
例如:创建一个枚举类型 Season,而且在该类型中添加了自定义的方法
enum Season {
Spring, Autumn, Summer, Winter;
public void print(String name) {
switch (name) {
case "Spring":
System.out.println("春天花会开");
break;
case "Summer":
System.out.println("夏日炎炎");
break;
case "Autumn":
System.out.println("秋天黄叶");
break;
case "Winter":
System.out.println("冬天白雪");
break;
}
}
}
public class SeasonDemo {
public static void main(String[] args) {
Season.Spring.print(Season.Winter.name());
}
}
5.在枚举中定义属性和构造方法
注意:枚举中的构造方法是私有的
enum Sing {
Red(1, "红灯"), Green(2, "绿灯"), Yellow(3, "黄灯");
private int num;
private String name;
Sing(int num, String name) {
this.num = num;
this.name = name;
}
public int getNum() {
return num;
}
public String getName() {
return name;
}
}
public class SingDemo {
public static void main(String[] args) {
System.out.println(Sing.Red.getNum() + " " + Sing.Red.getName());
}
}
6.总结
1.需要使用 enum 关键字修饰,被 enum 关键字修饰的类是 Enum 类的子类
2.枚举中每一个元素都是枚举类的对象或者叫实例对象
3.枚举类中的元素需要定义在第一行,多个之间用逗号分隔,最后的分号可以加上,也可以不用
4.枚举类中有构造方法
5.枚举类可以实现接口,同时需要每个元素重写接口中的方法