Java 枚举(2)
来源:互联网 发布:mac 10.10.5 编辑:程序博客网 时间:2024/06/06 09:06
在JDK1.5 之前,我们定义常量都是: public static fianl.... 。现在有了枚举,可以把相关的常量分组到一个枚举类型里,这样就很好的阅读性又避免的安全性问题。
枚举的应用:
import java.util.EnumMap;import java.util.EnumSet;public enum Gender {// 利用构造函数传参MAN(1), WOMAN(2);// 定义私有变量private int name;// 构造函数,枚举类型只能为私有private Gender(int name) {this.name = name;}@Overridepublic String toString() {return String.valueOf(this.name);}}class EnumBiz {/** * enum */public static void testEnum() { System.out.println("枚举类型的遍历 ......");//获得所有的数据Gender[] genders = Gender.values();for (Gender gender : genders) {System.out.println("name="+gender.name()+"\tordinal="+gender.ordinal()+"\tvalue="+gender);}System.out.println();}/** * * 演示EnumMap的使用,EnumMap跟HashMap的使用差不多,只不过key要是枚举类型 */public static void testEnumMap() { System.out.println("EnmuMap对象的使用.....");//EnumMap对象的构造函数需要参数传入,默认是key的类的类型EnumMap<Gender, String> map= new EnumMap<Gender, String>(Gender.class);//添加数据map.put(Gender.MAN, "男人");map.put(Gender.WOMAN, "女人");//获得所有的数据for (Gender gender : Gender.values()) {System.out.println("key="+gender.name()+"\tordinal="+gender.ordinal()+"\tvalue="+map.get(gender));}System.out.println();}/** * * EnumSet如何使用,EnumSet是一个抽象类,获取一个类型的枚举类型内容 * 可以使用allOf方法 */public static void testEnumSet() {System.out.println("EnmuSet对象的使用.....");//EnumMap对象的构造函数需要参数传入,默认是key的类的类型EnumSet<Gender> set= EnumSet.allOf(Gender.class);//获得所有的数据for (Gender gender : set) {System.out.println(gender);}System.out.println();}}测试:
public class TestGender {public static void main(String[] args) {EnumBiz.testEnum();EnumBiz.testEnumMap();EnumBiz.testEnumSet();}}
显示效果:
总结:
1、java enum类中为什么构造器必须是私有的?
枚举被设计成是单例模式,即枚举类型会由JVM在加载的时候,实例化枚举对象,你在枚举类中定义了多少个就会实例化多少个,JVM为了保证每一个枚举类元素的唯一实例,是不会允许外部进行new的,所以会把构造函数设计成private,防止用户生成实例,破坏唯一性
阅读全文
0 0
- Java总结(2)枚举
- java枚举:初学(2)
- Java 2:枚举
- java高级-枚举2
- Java| enum枚举(2)
- 【java】枚举学习2
- Java 枚举(2)
- java枚举类型 续2
- JAVA 枚举
- java枚举
- java枚举
- Java 枚举
- Java 枚举
- Java 枚举
- java 枚举
- java 枚举
- java枚举
- java枚举
- react_native 项目实战 (6) 趋势页面 列表抽取 popover使用
- WireMock 伪造 REST 服务
- poi导出模版示例
- java 常用集合list与Set、Map区别及适用场景总结
- 深度学习项目开发流程
- Java 枚举(2)
- 人工智能学习笔记-Keras介绍及简单应用
- 回溯法解决n皇后问题
- Badboy自动化测试工具10 导出脚本用于JMeter性能测试
- 配置ActiveMQ连接Broker使用failover协议
- Android ProGuard 混淆 详解
- Spring Boot 中使用 Dubbo 详解
- Spring Boot
- 004--easyui的combobox设置下拉框默认选中某一项