Java 枚举是一个特殊的类,一般表示一组常量,比如一年的 4 个季节,一个年的 12 个月份,一个星期的 7 天,方向有东南西北等。
Java 枚举类使用 enum 关键字来定义,各个常量使用逗号 , 来分割。
1.例如定义一个颜色的枚举类。
enum Color { RED, GREEN, BLUE; }
以上枚举类 Color 颜色常量有 RED, GREEN, BLUE,分别表示红色,绿色,蓝色。
.
public class Demo04 { public static void main(String[] args) { System.out.println(Season2.SPRING); System.out.println(Season2.SUMMER); } } enum Season2{ SPRING("春天", "温暖"),WINTER("夏天", "炎热"),SUMMER("夏天", "炎热"),AUTUMN("秋天", "凉爽"); private String name; private String desc; private Season2(String name, String desc) { this.name = name; this.desc = desc; } public String getName() { return name; } public String getDesc() { return desc; } @Override public String toString() { return "Season{" + "name='" + name + '\'' + ", desc='" + desc + '\'' + '}'; } }
2.使用enum关键字实现枚举
使用 enum 关键字代替 class
常量对象名(实参列表)
public static final Season2 SPRING = new Season2("春天", "温暖"); 等价于 SPRING("春天", "温暖");
如果有多个对象,需要使用 ,间隔
如果使用 enum 关键字来实现枚举,要求将定义的常量对象写在最前面
使用enum关键字实现枚举的注意事项
当我们使用enum关键字开发一个枚举类时,默认会继承Enum类;而且该枚举类是一个final类
如果使用无参构造器创建枚举对象,则可以省略小括号
当有多个枚举对象时,使用 ,隔开,最后以一个分号结尾
枚举对象必须放在枚举类的行首
enum的常用方法
使用关键字enum时,会隐式继承Enum类,这样就可以使用Enum类的相关方法
toString():Enum类已经重写过了,返回的是当前对象名;子类可以重写该方法,用于返回对象的属性信息
name():返回当前对象名(常量名),子类中不能重写
ordinal():返回当前对象的位置号,默认从0开始
values():返回当前枚举类中所有的常量对象
valueOf():将字符串转换成已有的枚举对象,要求字符串必须为已有的常量名,否则报异常!
compareTo():比较两个枚举常量的大小(编号),返回的结果是两个枚举常量的编号相减得到的数
————————————————
版权声明:本文为CSDN博主「我为杰伦代言」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_52385232/article/details/125430591
public class Demo05 { public static void main(String[] args) { Season2 autumn = Season2.AUTUMN; System.out.println(autumn.name()); System.out.println(autumn.ordinal()); Season2[] values = Season2.values(); for (Season2 season : values) { System.out.println(season); } Season2 autumn1 = Season2.valueOf("AUTUMN"); System.out.println("season1="+autumn1); System.out.println(autumn == autumn1); System.out.println(Season2.AUTUMN.compareTo(Season2.SUMMER)); } } enum Season2{ SPRING("春天", "温暖"),WINTER("冬天", "寒冷"),SUMMER("夏天", "炎热"),AUTUMN("秋天", "凉爽"); private String name; private String desc; private Season2(String name, String desc) { this.name = name; this.desc = desc; } public String getName() { return name; } public String getDesc() { return desc; } @Override public String toString() { return "Season{" + "name='" + name + '\'' + ", desc='" + desc + '\'' + '}'; } }
enum的使用细节
-
使用enum关键字创建的枚举类,就不能再继承其它类了,因为使用enum创建的枚举类会隐式的继承Enum类,而Java是单继承机制
-
枚举类和普通类一样,可以实现接口
————————————————
版权声明:本文为CSDN博主「我为杰伦代言」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_52385232/article/details/125430591