枚举类
-
枚举类的理解:类的对象只有有限个,确定的。我们称此类为枚举类
-
当需要定义一组常量时,强烈建议使用枚举类
-
如果枚举类中只有一个对象,则可以作为单例模式的实现方式
Enum类中的常用方法:
- values()方法:返回枚举类型的对象数组。该方法可以很方便地遍历所有的枚举值
- valueOf(String str):可以把一个字符串转为对应的枚举类对象。要求字符串必须是枚举类对象的“名字”。如不是,会有运行时异常:IllegalArgumentException
- toString():返回当前枚举类对象常量的名称
创建枚举类
//使用enum关键字创建枚举类
enum EnumTest {
//1.提供当前枚举类的对象,多个对象之间用","隔开,末尾对象";"结束
CHAMPION("冠军","金牌"),
RUNNERUP("亚军","银牌");
//2.声明EnumTest对象的属性:private final修饰
private final String name;
private final String prize;
//3.私有化类的构造器,并给对象属性赋值
private EnumTest(String name, String prize) {
this.name = name;
this.prize = prize;
}
//4.其他诉求1:获取枚举类对象的属性
public String getName() {
return name;
}
public String getPrize() {
return prize;
}
//4.其他诉求2:提供toString()
@Override
public String toString() {
return "EnumTest{" +
"name='" + name + '\'' +
", prize='" + prize + '\'' +
'}';
}
}
//测试
class Test2{
public static void main(String[] args) {
EnumTest champion = EnumTest.CHAMPION;
System.out.println(champion); //EnumTest{name='冠军', prize='金牌'}
//values():返回所有的枚举类对象构成的数组
EnumTest[] values = EnumTest.values();
for (int i = 0; i < values.length; i++) {
System.out.println(values[i]);
}
//valueOf(String objName):返回枚举类中对象名是objName的对象。
EnumTest values1 = EnumTest.valueOf("CHAMPION");
System.out.println(values1);
}
}

浙公网安备 33010602011771号