枚举详解

枚举

简单介绍

  1. 枚举对应英文enum, 是一组常量的集合
  2. 枚举属于一种特殊的类,里面只包含一组有限的特定的对象

实现方式

  • 自定义类实现枚举
  • 使用enum关键字实现枚举

自定义类实现枚举

  1. 不需要提供setter方法,因为枚举对象值通常为只读
  2. 对枚举对象/属性使用final + static共同修饰,实现底层优化
  3. 枚举对象名通常使用全部大写,常量的命名规范
  4. 枚举对象根据需要,也可以有多个属性
说明
  • 将构造器私有化,防止直接new
  • 去掉setter方法,防止属性被修改
  • 在类内部直接创建固定的对象
  • 加入final修饰符优化
  • 对外暴露对象
  • 可以提供get方法

enum关键字实现枚举

  • 使用关键字enum替代class
  • 如果有多个常量(对象),使用逗号间隔
  • 如果使用enum来实现枚举,要求将定义常量对象写在前面
  • 使用无参构造器创建常量对象,可以省略()
注意事项
  1. 使用enum关键字开发一个枚举类时,默认会继承Enum类,而且是一个final类
  2. 调用构造器直接创建常量对象
  3. 如果使用无参构造创建枚举对象,则实参列表和小括号都可以省略
  4. 当有多个枚举对象时,使用逗号间隔,最后一个分号结尾
  5. 枚举对象必须放在枚举类的行首

枚举类常用方法

  1. toString :Enum类已经重写,返回的是当前对象名,子类可以重写该方法,用于返回对象的属性信息
  2. name : 返回当前对象名,子类不能重写
  3. ordinal : 返回当前对象的位置号,默认从0开始
  4. values : 返回当前枚举类中的所有常量
  5. valueOf: 将字符串转换成枚举对象,要求字符串必须为已有的常量名,否则报异常
  6. compareTo : 比较两个枚举常量,比较的是编号

enum实现接口

  • 使用enum关键字后,就不能再继承其他类了,因为enum会隐式继承Enum,而Java式单继承机制
  • 枚举类和普通类一样,可以实现接口
posted @ 2021-06-21 10:57  mx_info  阅读(227)  评论(0)    收藏  举报