枚举类型Enum的含义分析
2015-03-11 15:16
155 查看
枚举类型是一种基本数据类型而不是构造数据类型,从jdk1.5才有的新类型,一般用来做全局常量。
特性:
1.它不能有public的构造函数,这样做可以保证客户代码没有办法新建一个enum的实例,可用来写单例模式。2.所有枚举值都是public , static , final的。注意这一点只是针对于枚举值,我们可以和在普通类里面定义
变量一样定义其它任何类型的非枚举变量,这些变量可以用任何你想用的修饰符。
3.Enum覆载了了toString方法,因此我们如果调用Color.Blue.toString()默认返回字符串”Blue”.
用法:
1:字符串常量(也是最简洁的单例模式)://定义 public enum EnumKey{ MESSAGE_UPDATE,MESSAGE_DELETE,MESSAGE_ADD; } //使用 EnumKey.MESSAGE_ADD.toString();
2:整型常量
//定义 public enum EnumKey { MESSAGE_UPDATE(1), MESSAGE_DELETE(2), MESSAGE_ADD(3); public int tag; EnumKey(int iTag) { this.tag = iTag; } } //使用 int i =EnumKey.MESSAGE_ADD.tag;
3:字符串常量(第二种表示方法)
//定义 public enum EnumKey { MESSAGE_UPDATE("update"), MESSAGE_DELETE("delete"), MESSAGE_ADD("add"); public String msg; EnumKey(String str) { this.msg = str; } } //使用 String s =EnumKey.MESSAGE_ADD.msg;
4:添加方法
//定义 public enum EnumKey { MESSAGE_UPDATE("update", 1), MESSAGE_DELETE("delete", 2), MESSAGE_ADD("add", 3); public String msg; public int tag; EnumKey(String str, int iTag) { this.msg = str; this.tag = iTag; } public static boolean getMax(int flag) { return flag > 1 ? true : false; } } //使用 EnumKey.MESSAGE_ADD.getMax(2);
小结:
'
发现什么了没?
枚举的每个实例所包含的参数和枚举的构造方法所包含的参数一致
于是你会发现,其实MESSAGE_UPDATE("update",
1)所代表的意思是EnumKey MESSAGE_UPDATE=new EnumKey("update", 1),即:
public class EnumKey { public static String msg; public static int tag; public EnumKey(String str, int iTag) { this.msg = str; this.tag = iTag; } } EnumKey MESSAGE_UPDATE=new EnumKey("update", 1);
相关文章推荐
- 通过字节码深入分析java的枚举类型enum
- java jdk1.5 特性 -- 枚举类型 Enum的使用与分析
- java中枚举类型enum的使用和分析
- 由AFX_IDW_PANE_FIRST宏的含义分析界面库XTP的一个bug
- C#中枚举类型enum的使用[转载]
- Const变量和enum变量gcc编译生成目标文件分析
- 新手入门:C/C++中枚举类型(enum)
- Enum枚举类型的帮助类
- C/C++中枚举类型(enum)
- C++的enum类型分析
- C/C++中枚举类型(enum)
- 随心所欲操作Enum枚举类型
- 学点 C 语言(18): 数据类型 - 枚举类型(enum)
- JAVA枚举类型Enum
- VC语法 enum { IDD = IDD_ABOUTBOX };分析
- C/C++中枚举类型(enum)
- 深入浅出J2SE 5.0 枚举类型(aka Enum>)
- C++中enum枚举类型成员重名问题的解决方法 - Enum枚举类型的类封装
- javascript:void(0)的真正含义实例分析
- LinQ方法之---------Aggregate 含义分析