(java基础)枚举

(java基础)枚举

改成枚举

枚举英文enumerarion
1.分析问题

(1)创建Season 对象有如下特点

(2)季节的值是有限的几个值(spring, summer, autumn, winter)

(3)只读,不需要修改。

2.解决方案

枚举是一组常量的集合。可以这里理解:枚举属于一种特殊的类,里面只包含一组有限的特定的对象。

3.枚举的两种实现形式

(1)自定义类实现枚举

img

例如上面的第一张图

(2)使用 enum 关键字实现枚举

例如上面第2、3张图

4.枚举的注意事项

(1)当我们使用enum 关键字开发一个枚举类时,默认会继承 Enum 类, 而且是一个final 类[如何证明],老师使用javap 工具来演示

(2)传统的 public static final Season2 SPRING = new Season2(“春天”, “温暖”); 简化成 SPRING(“春天”, “温暖”), 这里必须知道,它调用的是哪个构造器.

(3)如果使用无参构造器 创建 枚举对象,则实参列表和小括号都可以省略

(4)当有多个枚举对象时,使用,间隔,最后有一个分号结尾

(5)枚举对象必须放在枚举类的行首。

5.enum常用方法

(1)说明:使用关键字 enum 时,会隐式继承 Enum 类, 这样我们就可以使用 Enum 类相关的方法。

img

(2)enum常用方法

(1)toString():Enum 类已经重写过了,返回的是当前对象名,子类可以重写该方法,用于返回对象的属性信息

(2)name():返回当前对象名(常量名),子类中不能重写

(3)ordinal():返回当前对象的位置号,默认从 0 开始

(4)values():返回当前枚举类中所有的常量(values要反编译才能查到这个方法,追踪enum类没有显示)

(5)valueOf():将字符串转换成枚举对象,要求字符串必须为已有的常量名,否则报异常!

(6)compareTo():比较两个枚举常量,比较的就是编号!

例子在下图

img img

本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!