文章目录
- 枚举
- 枚举的基本认识
- 抽象枚举
- 枚举的使用场景
- 单例设计模式
- 信息推荐
枚举
枚举就是在当前枚举类中只能有罗列出的几个实例
枚举的基本认识
public enum A {//枚举类的第一行必须罗列的是枚举对象的名字//枚举就是在当前类A中示例对象只能有X,Y,Z这三个实例类X,Y,Z;private String name;public String getName() {return name;}public void setName(String name) {this.name = name;}
}
//使用枚举
public static void main(String[] args) {A a1 = A.X;System.out.println(a1);//在编译成class时,会自动添加values和valueOf,name(),ordinal()等方法A[] as = A.values();//取全部对象Arrays.stream(as).forEach(System.out::println);A a3 = A.valueOf("Z");System.out.println(a3.name());System.out.println(a3.ordinal());
}
抽象枚举
public enum A {x(){@Overridepublic void go() {System.out.println("x");}};public abstract void go();
}
枚举的使用场景
单例设计模式
//枚举一个就是单例
public enum A {X;public void go(){System.out.println("单例");}
}
信息推荐
比如,当图书阅读软件向用户推送内容时,根据男女不同推送,搭配case选择就很优雅
当然这种也可以用常量去选择,有利有弊,各有千秋
常量可选更多,更灵活,枚举更死板,更有利于代码开发的规范
public static void main(String[] args) {check(A.BOY);
}
public static void check(A sex){switch (sex){case BOY:System.out.println("Boy");break;case GIRL:System.out.println("Girl");break;}
}
public enum A {BOY,GIRL;
}