(enumeration)
枚举属于一种特殊的类,里面只包含一组有限的特定的对象
1、将构造器私有化,防止直接new
2、去掉setXxx方法,防止属性被修改
3、在类的内部直接创建固定的对象
4、优化:可以添加 final 修饰符
enum Season { //enum代替 class //直接创建对象, 多个对象用逗号间隔。 语法:常量名(实参列表) Spring("春天", "xx"), Winter("冬天", "xx")..., What;//What调用无参构造器,可以省略( ) ... }
1、用 enum关键字 开发一个枚举类时候,默认会继承Enum类(不能再继承其他类了),而且是一个final类
2、传统的创建对象能进行简略,但必须明确是哪个构造器,无参构造器的实参列表和小括号都可以省略
3、当有多个枚举对象时,使用逗号“,”间隔
4、枚举对象必须放在枚举类的行首(创建对象放在行首)
5、枚举类和普通类一样,可以实现接口
XX为枚举类名,xx为枚举对象
XX a = XX.xx;
1、name:输出枚举对象的名字
System.out.println(a.name());
2、ordinal:输出枚举对象的次序/编号
System.out.println(a.ordinal());
3、values:返回含有定义的所有枚举对象 (返回 XX[])
XX values[] = XX.values(); for (XX a : values) { ... }
4、valueOf:将字符串转换成枚举对象,要求字符串必须为已有的常量名,否则报异常
XX a = XX.valueOf("xx");
5、toString:Enum类已经重写过了,返回的是当前的对象名,子类可以重写该方法,用于返回对象的属性信息
6、compareTo:比较两个枚举常量,比较的是编号
System.out.println(XX.xx.compareTo(XX.yy));//返回 xx的编号 - yy的编号的值