java小白日记31(枚举)
枚举对应英文(enumeration,简写enum)
枚举属于一种特殊的类,里面只包含一种有限的特定的对象
自定义枚举类
(1)不需要提供setXxx方法,因为枚举对象值通常为只读
(2)对枚举对象/属性使用final+static共同修饰(可以不用加载类)
(3)枚举对象名通常使用全部大写,常亮的命名规范
(4)枚举对象根据需要,也可以有多个属性
进行自定义类实现枚举,有如下特点
(1)构造器私有化
(2)本类内部创建一组对象
(3)对外暴露对象(通过为对象添加public final static修饰符)
(4)可以提供get方法,但不要提供set
使用enum来实现枚举类
(1)使用关键字enum 替换 class
(2)如图解读,常量名(实参列表)
(3)如果有多个常量(对象),使用逗号间隔
(4)如果使用enum来实现枚举,要求将常量对象写在前面
enum关键字实现枚举注意事项
(1)当我们使用enum关键字开发一个枚举类时,默认会继承Enum类,而且是一个final类
(2)如果使用无参构造器创建枚举对象,则实参列表和小括号都可以去掉
(3)当有多个枚举对象时,使用逗号间隔,最后一个后面用分号
(4)枚举对象必须放在枚举类的行首
enum常用方法
(1)toString:Enum类已经重写过了,返回的是当前对象名,子类可以重写该方法,用于返回对象的属性信息
(2)name:返回当前对象名(常量名),子类中不能重写
(3)ordinal:返回当前对象的位置号,默认从0开始
(4)values:返回当前枚举类的所有常量
(5)valueOf:将字符串转换成枚举对象,要求字符串必须为已有的常量名,否则报异常!
(6)compareTo:比较两个枚举常量,比较的就是编号!
enum实现接口
(1)使用enum关键字后,就不能再继承其他类了,因为enum会隐式继承Enum,而java是单继承机制
(2)枚举类和普通类一样,可以实现接口,如下形式:
enum 类名 implements 接口1 接口2 {}