枚举类
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;
}
@Override
public 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 枚举类实现接口或进行客制化
枚举类可以通过 在枚举类对象的后面加上{覆写}的方式进行客制化的覆写