enum关键字实现枚举
大约 1 分钟
enum关键字实现枚举
代码实现
- 使用 enum 关键字替代 class
- 将
public static final EnumerationSon SPRING = new EnumerationSon("春天", "好1");
直接使用SPRING("春天", "好1") 常量名(实参列表)
- 将
- 如果有多个常量(对象), 使用,号间隔即可
SPRING("春天", "好1"), AUTUMN("秋天", "好3")
- 如果有多个常量(对象), 使用,号间隔即可
- 使用 enum 来实现枚举,要求将定义常量对象,写在前面
public class Enumeration01 {
public static void main(String[] args) {
System.out.println(EnumerationSon.SPRING);
System.out.println(EnumerationSon.SUMMER);
System.out.println(EnumerationSon.AUTUMN);
System.out.println(EnumerationSon.WINTER);
}
}
enum EnumerationSon {
SPRING("春天", "好1"),
SUMMER("夏天", "好2"),
AUTUMN("秋天", "好3"),
WINTER("冬天", "好4");
private String name;
private String desc;
private EnumerationSon(String name, String desc){
this.name = name;
this.desc = desc;
}
public String getDesc() {
return desc;
}
@Override
public String toString() {
return "EnumerationSon{" +
"name='" + name + '\'' +
", desc='" + desc + '\'' +
'}';
}
}
注意
- 当我们使用 enum 关键字开发一个枚举类时,默认会继承Enum类[如何证明]
- 传统的
public static final Season2 SPRING = new Season2("春天","温暖");
简化成SPRING(“春天”,"温暖")
这里必须知道,它调用的是哪个构造器 - 如果使用无参构造器创建 枚举对象,则实参列表和小括号都可以省略
- 当有多个枚举对象时,使用,间隔,最后有一个分号结尾
- 枚举对象必须放在枚举类的行首.
enum 实现接口
使用enum关键字后,就不能再继承其它类了,因为enum会隐式继承Enum,而Java是单继承机制
枚举类和普通类一样,可以实现接口,如下形式
enum 类名 implements 接口1,接口2
代码演示
public class Enumeration01 {
public static void main(String[] args) {
Music.SPRING.playing();
Music.SUMMER.playing();
Music.AUTUMN.playing();
Music.WINTER.playing();
}
}
interface EnumerationSonInterface {
public void playing();
}
enum Music implements EnumerationSonInterface {
SPRING(),
SUMMER(),
AUTUMN(),
WINTER();
@Override
public void playing(){
System.out.println("kdkdkdk");
}
}