java中的枚举类
2021-02-02 13:17
标签:参考 私有化 一个 tail 本质 rgs png 直接 yellow 枚举类中得枚举项都会被编译成static final T类型的对象作为枚举类的属性 接下来我们以实例的方式讲解枚举类的属性与方法 由于枚举类已经继承了Enum类,所以不能继承其他的类。 由于枚举类会被编译器处理为final类,所以不能被继承。 enum是一个关键字,使用enum定义的枚举类本质上就相对于一个类继承了Enum这个抽象类而已。所以说enum定义的枚举结构实际上就是一个多例类! switch()参数可以使用enum 重新认识java(十) ---- Enum(枚举类) java中的枚举类 标签:参考 私有化 一个 tail 本质 rgs png 直接 yellow 原文地址:https://www.cnblogs.com/wunsiang/p/12808745.html原理
使用
public enum Weekday {
SUN(0),MON(1),TUE(2);//通过构造函数指定属性值
int valueT;
Weekday(int v){
valueT = v;
}
public static void main(String[] args) {
for(Weekday w : Weekday.values()) {//values为所有的枚举项
System.out.println(w.name());//名称,即枚举项的字符含义
System.out.println(w.valueT);//自已定义的属性
System.out.println(w.ordinal());//枚举项所处次序,从0开始
}
}
}
enum Signal {
GREEN, YELLOW, RED
}
public class TrafficLight {
Signal color = Signal.RED;
public void change() {
switch (color) {//参数是枚举类的话,底下可以直接case枚举项
case RED:
color = Signal.GREEN;
break;
case YELLOW:
color = Signal.RED;
break;
case GREEN:
color = Signal.YELLOW;
break;
}
}
}
使用枚举实现线程安全的单例模式
public class User {
????//私有化构造函数
????private User(){ }
????//定义一个静态枚举类
????static enum SingletonEnum{
????????//创建一个枚举对象,该对象天生为单例
????????INSTANCE;
????????private User user;
????????//私有化枚举的构造函数
????????private SingletonEnum(){
????????????user=new User();
????????}
????????public User getInstnce(){
????????????return user;
????????}
????}
????//对外暴露一个获取User对象的静态方法
????public static User getInstance(){
????????return SingletonEnum.INSTANCE.getInstnce();
????}
}
参考资料
非常好的文章,推荐阅读!
上一篇:Java学习视频资源