目录
枚举类
概念:
特点:
enum关键字实现枚举
注意事项:
enum枚举类常用方法
枚举类
概念:
枚举类就是把当某一个类只有几种情况的时候,把它的这几种情况一一列举出来,并且不可再修改和创建新的对象,比如季节类,只有春夏秋冬四种情况,那么就可以直接创建好四个对象,可以随时调用但是不能修改。
特点:
1.构造器私有化,不允许在创建对象
2.本类内部创建好一组对象,如【春,夏,秋,冬】
3.对外暴露对象,用public static final修饰对象,让外部可以调用但是不可以修改,并且调用时不会加载类
4.可以提供get方法,但是不能提供set方法
enum关键字实现枚举
1.创建枚举类时,用enum代替class
2.创建对象时,可以直接用常量名(实参列表)例如SPRING("春天")简化了创建对象的过程
3.如果有多个对象,那他们直接用逗号分隔,最后采用分号结尾
4.如果用enum实现枚举,那么定义对象必须写在最前面
5.当使用无参构造器创建枚举对象时,则参数列表和小括号都可以省略
public enum Season {
SPRING("春天"), SUMMER("夏天"), AUTUMN("秋天"), WINTER("冬天");
private String name;
private Season(String name) {
this.name = name;
}
public String getName() {
return name;
}
@Override
public String toString() {
return "Season{" +
"name='" + name + '\'' +
'}';
}
}
注意事项:
因为是常量对象,所以对象名一般用大写字母
当我们使用enum创建枚举类时,它默认继承Enum类,所以不能再继承别的类,但是可以实现接口
enum枚举类常用方法
因为默认继承Enum类,所以枚举对象可以调用Enum中的成员方法
1.toString,Enum类中已经重写过了,直接使用时返回的是当前对象名,子类可以重写方法用于返回对象的属性信息
2.name:返回当前常量名(对象名),子类中不能重写
3.ordinal:返回当前对象的位置号,就是按顺序往后排的号码,从0开始计算
4.values:返回当前枚举中的所有常量
用增强for循环搭配使用
//创建Season类数组,用values方法储存进去
Season[] values = Season.values();
//把数组values中的值依次赋值给Season类变量season,直至数组结束
for (Season season : values){
System.out.println(season);
}
增强for循环是指遍历数组时,会把数组值从小到大依次赋值给前面的变量,直到取出完毕
5.valueOf:将字符串转换成枚举对象,要求字符串必须是已有的常量名,否则报异常
6.compareTo:比较两个枚举常量的编号,方法体就是前面的编号减去后面的编号