枚举类
1.自定义枚举类
1.1 代码实现
构造枚举代码:
public class CustomEnum {private final String name;private final String desc;private CustomEnum(String name,String desc){this.desc = desc;this.name = name;}public static final CustomEnum CHUN = new CustomEnum("春天","春暖花开");public static final CustomEnum XIA = new CustomEnum("夏天","生如夏花");public static final CustomEnum QIU = new CustomEnum("秋天","秋风瑟瑟");public static final CustomEnum DONG = new CustomEnum("冬天","白雪皑皑");public String getName() {return name;}public String getDesc() {return desc;}@Overridepublic String toString() {return "CustomEnum{" +"name='" + name + '\'' +", desc='" + desc + '\'' +'}';}}
测试代码:
class test{
public static void main(String[] args) {
CustomEnum chun = CustomEnum.CHUN;
System.out.println(chun.getDesc());
System.out.println(chun.getName());
System.out.println(chun.toString());
}
}
1.2 流程梳理
- 声明属性,声明成private final属性
- 声明全参的私有构造方法
- 提供public static 的属性,实例化本类并进行赋值
- 实现get方法,toString方法
-
2. 枚举类的使用
1.1 代码实现
构造枚举类:
public enum TestEnum { CHUN("春天","春暖花开"), XIA("夏天","生如夏花"), QIU("秋天","秋风瑟瑟"), DONG("冬天","白雪皑皑"); private final String name; private final String desc; private TestEnum(String name,String desc){ this.desc = desc; this.name = name; } public String getName() { return name; } public String getDesc() { return desc; } }测试代码:
class te{ public static void main(String[] args) { String name = TestEnum.CHUN.getName(); String desc = TestEnum.CHUN.getDesc(); System.out.println(name+":"+desc); } }2.2 流程梳理
先声明公共的属性以及实例化对象,写到枚举类的最上面,用逗号隔开
- 声明 private final 属性
- 构造全参私有构造器
- 写get()方法等一系列的客制化功能
与自己手写的Enum类相比,只是将第③部放到最上面已经剔除掉相同的代码
2.3 枚举类常用的方法
values()方法:返回枚举类型的对象数组。该方法可以很方便的遍历所有的枚举值。
- valueOf(String str):通过传入字符获取名称与字符串名称相同的枚举类对象
- toString():返回当前枚举类对象常量的名称
2.4 枚举类实现接口或进行客制化
枚举类可以通过 在枚举类对象的后面加上{覆写}的方式进行客制化的覆写
