文章目录
1. 枚举
- 枚举:枚举属于一种特殊的类,里面只包含一组有限的固定的对象集合。
- 实现方式:
- 自定义实现枚举
- 使用enum关键字
1.1 自定义枚举
- 步骤:
- 将类的构造器私有化。防止直接new创建新的对象
- 去掉setter方法,只设置getter方法。防止固定对象的属性被修改。
- 创建固定对象:在类的静态成员变量处,并用static final修饰【注意:final修饰的变量名大写】
- 例子:
1.2 enum关键字实现枚举
- 步骤:
- 用
enum
关键字代替定义类时的class
关键字- 将类的构造器私有化。防止直接new创建新的对象
- 去掉setter方法,只设置getter方法。防止固定对象的属性被修改。
- 创建固定对象:
- 在类的最前面
- 使用语法
对象名(传给构造器的参数);
- 多个对象间使用
,
而不是;
,最后一个对象使用;
结尾
注意:如果创建固定对象时,使用的是无参构造器,则括号可以省略。
- 例子:
- 细节:
- 所有enum定义的类都隐式继承了
Enum类
,故枚举类不可以再继承其他类。【因为单继承机制】- 枚举类可以实现接口【因为多接口机制】
- 直接打印固定对象,调用的是toString()方法,而父类EnumtoString()方法返回的是该枚举对象的变量名。
2. enum的常用方法
2.1 枚举对象的方法
2.1.1 toString方法
枚举类都继承了父类Enum类,父类种有toString方法,返回的是当前特定对象的名字。
同时,作为子类,可以重写toString方法,返回更多的信息。
2.1.2 ordinal方法
返回当前枚举对象在枚举对象数组中的下标。
2.1.3 compareTo方法
用于比较两个枚举对象在枚举对象数组的下标之差,可以用来判断下标是否相等。
2.2 枚举类的方法
2.2.1 values方法
返回枚举所有对象,是一个一维数组。
2.2.2 valueOf方法
根据输入的枚举对象变量名,到枚举对象集合中去查找是否有该名的枚举对象:有则返回该对象;没有则报错。