使用Season2 枚举类来演示:
Season2 枚举类
enum Season2{
SPRING("春天","温暖"),
WINTER("冬天","寒冷"),
AUTUMN("秋天","凉爽");
private String name;
private String desc;//描述
private Season2(String name, String desc) {
this.name = name;
this.desc = desc;
}
}
方法一: name
Season2 autumn = Season2.AUTUMN;
// 输出枚举对象的名字
System.out.println(autumn.name());
结果: AUTUMN
方法二: ordinal
// ordinal() 输出的是该枚举对象的次序/编号,从0开始
// AUTUMN 枚举对象是第三个,因此输出 2
System.out.println(autumn.ordinal());
返回结果: 2
方法三: values
// 反编译可以看出values 方法,返回 Season2[]
// 含定义的所有的枚举对象
Season2[] values = Season2.values();
for (Season2 value : values) { //增强for循环
System.out.println(value);
}
返回结果
Season{name='春天', desc='温暖'}
Season{name='冬天', desc='寒冷'}
Season{name='秋天', desc='凉爽'}
方法四: valueOf
// valueOf :将字符串转换为枚举对象,要求字符串必须为已有的常量名,否则报异常
// 执行流程
// 1、根据你输入的 ”AUTUMN“ 到 Season2 的枚举对象中去寻找。
// 2、如果找到了, 就返回,如果没有找到,就报错。
Season2 season1 = Season2.valueOf("AUTUMN");
System.out.println("season1 = " + season1);
System.out.println(autumn == season1);
输出结果
season1 = Season{name='秋天', desc='凉爽'}
true
方法五: compareOf
// compareOf 比较两个枚举常量,比较的就是编号
// 1、就是把 Season.AUTUMN 的枚举对象编号 和 Season.SPRING 的枚举对象编号比较
// 2、看看结果
// 等于0 , 代表编号相等, 大于0, 代表前面的编号大于后面, 小于0,代表后面的编号大于前面的编号
System.out.println(Season2.SPRING.compareTo(Season2.AUTUMN));
输出结果 -2



