(java基础)枚举
(java基础)枚举
改成枚举
枚举英文enumerarion
1.分析问题
(1)创建Season 对象有如下特点
(2)季节的值是有限的几个值(spring, summer, autumn, winter)
(3)只读,不需要修改。
2.解决方案
枚举是一组常量的集合。可以这里理解:枚举属于一种特殊的类,里面只包含一组有限的特定的对象。
3.枚举的两种实现形式
(1)自定义类实现枚举
例如上面的第一张图
(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 类相关的方法。
(2)enum常用方法
(1)toString():Enum 类已经重写过了,返回的是当前对象名,子类可以重写该方法,用于返回对象的属性信息
(2)name():返回当前对象名(常量名),子类中不能重写
(3)ordinal():返回当前对象的位置号,默认从 0 开始
(4)values():返回当前枚举类中所有的常量(values要反编译才能查到这个方法,追踪enum类没有显示)
(5)valueOf():将字符串转换成枚举对象,要求字符串必须为已有的常量名,否则报异常!
(6)compareTo():比较两个枚举常量,比较的就是编号!
例子在下图
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!