标签:引入 ... 字符 value 表示 调用 1.5 指定 对象
enum 的全称为 enumeration, 是 JDK 1.5 中引入的新特性,存放在 java.lang 包中。
enum是关键字,感觉它跟class、interface是并列的,并且不能跟final,abstract同时使用,因为它默认是final类型了。
enum类中的每个enum元素都是其类的static final实例
enum是枚举类型,定义为”staitc final“的,也就是说不能被重写和继承,在初始化过程中即进行赋值,并且不能被改变
enum修饰的类不能被其他类继承,也不能继承其他类。原因在于,enum默认继承了Enum类,所以不能多重继承,而被enum修饰的类默认为final的,所以也不能衍生出子类。
1 enum EnumData {
2 MON, TUE, WED, THU, FRI, SAT, SUN;
3 }
4 public class EnumTest {
5 public static void main(String[] args) {
6 System.out.println(EnumData.MON);
7 for (EnumData e : EnumData.values()) {
8 System.out.println(e.toString());
9 }
10 }
11 }
创建枚举类型要使用 enum 关键字,隐含了所创建的类型都是 java.lang.Enum 类的子类(java.lang.Enum 是一个抽象类)。枚举类型符合通用模式 Class Enum<E extends Enum<E>>,而 E 表示枚举类型的名称。枚举类型的每一个值都将映射到 protected Enum(String name, int ordinal) 构造函数中,在这里,每个值的名称都被转换成一个字符串,并且序数设置表示了此设置被创建的顺序。
public enum EnumTest {
MON, TUE, WED, THU, FRI, SAT, SUN;
}
这段代码实际上调用了7次 Enum(String name, int ordinal):
new Enum<EnumTest>("MON",0);
new Enum<EnumTest>("TUE",1);
new Enum<EnumTest>("WED",2);
... ...
int compareTo(E o)
比较此枚举与指定对象的顺序。
Class<E> getDeclaringClass()
返回与此枚举常量的枚举类型相对应的 Class 对象。
String name()
返回此枚举常量的名称,在其枚举声明中对其进行声明。
int ordinal()
返回枚举常量的序数(它在枚举声明中的位置,其中初始常量序数为零)。
String toString()
返回枚举常量的名称,它包含在声明中。
static <T extends Enum<T>> T valueOf(Class<T> enumType, String name)
返回带指定名称的指定枚举类型的枚举常量。
参考链接:
[1]http://www.cnblogs.com/hyl8218/p/5088287.html
[2]http://blog.csdn.net/u013248535/article/details/52918940
详细使用,还是参考链接里吧!
标签:引入 ... 字符 value 表示 调用 1.5 指定 对象
原文地址:http://www.cnblogs.com/acm-bingzi/p/javaEnum.html