java笔记(十):枚举(enum)
2017-08-25 13:20
501 查看
java中和枚举有关的关键字有很多,通常意义上用来定义有限个变量的关键字一般是指enum.
上述代码定义了一个类DayOfWeek,并在该类中定义了两个DayOfWeek的对象。
很重要的一点是,任何enum的对象都是Enum类型的。如下:
如此,enum类的对象(实例)就都有了Enum的方法。
那么,事不宜迟,看看Enum的源码吧:
Enum的源码很简单,除上述列出的方法和属性外,还有一个valueOf()方法,用于根据name返回对应的Enum。
对于Enum的综合用法如下:
Enum
public enum DayOfWeek{ Monday, Tuesday; }
上述代码定义了一个类DayOfWeek,并在该类中定义了两个DayOfWeek的对象。
很重要的一点是,任何enum的对象都是Enum类型的。如下:
public static void main(String[] args){
DayOfWeek day = DayOfWeek.Monday;
if(day instanceof DayOfWeek && day instanceof Enum){
System.out.println(day); //Monday
}
}
public enum DayOfWeek{ Monday, Tuesday; }
如此,enum类的对象(实例)就都有了Enum的方法。
那么,事不宜迟,看看Enum的源码吧:
public abstract class Enum<E extends Enum<E>> implements Comparable<E>, Serializable { //该属性保存枚举对象的名字 private final String name; public final String name() { return name; } //该属性保存枚举对象的顺序,从0开始 private final int ordinal; public final int ordinal() { return ordinal; } protected Enum(String name, int ordinal) { this.name = name; this.ordinal = ordinal; } public String toString() { return name; }
Enum的源码很简单,除上述列出的方法和属性外,还有一个valueOf()方法,用于根据name返回对应的Enum。
对于Enum的综合用法如下:
public static void main(String[] args){
DayOfWeek day = DayOfWeek.Monday;
System.out.println(DayOfWeek.Tuesday.ordinal()+" "+
DayOfWeek.Tuesday.name()+" "+DayOfWeek.Tuesday.toString()); //1 Tuesday Tuesday
System.out.println(DayOfWeek.valueOf("Monday").compareTo(day)); //0
}
public enum DayOfWeek{ Monday, Tuesday; }
属性和方法
在enum中可以定义属性和方法public static void main(String[] args){ DayOfWeek.printSelf(); } public enum DayOfWeek{ Monday("星期一",1), Tuesday("星期二",2); private String desc; private int val; //enum的初始化方法只能定义为私有的,因为enum类的实例只能在enum内部初始化 private DayOfWeek(String desc, int val){ this.desc = desc; this.val = val; } public static void printSelf(){ for(DayOfWeek day : DayOfWeek.values()){ System.out.println(day.name()+" "+day.desc+" "+day.val); //Monday 星期一 1 \n Tuesday 星期二 2 } } }
相关文章推荐
- Java学习笔记82. 枚举 enum
- Java之枚举笔记(Enum)
- Effective java 第2版 - 笔记(01) 单例(Singleton)的枚举(enum)实现
- java学习笔记之 --------枚举(enum)
- Java学习笔记21 枚举类型enum、Enu…
- Java学习笔记-枚举(enum)
- java学习笔记之枚举类enum(转载)
- 14. JAVA 枚举(Enum、类集EnumMap&EnumSet 、实现接口、定义抽象方法) ----- 学习笔记
- java enum(枚举)使用详解 + 总结
- Java for Web学习笔记(一百):持久化初探(5)Enum、时间和lob的类型匹配
- java学习笔记10--枚举
- 对Java中枚举类型Enum的理解
- 关于Java中枚举Enum的深入剖析
- java enum(枚举)使用详解 + 总结
- Java中自定义枚举(Enum)项的值,可设置为指定的值
- Java enum枚举 测试例子
- J2SE学习笔记3 — Java基本语法(9)数组和枚举
- Java 枚举(enum) 详解7种常见的用法
- java enum(枚举)使用详解 + 总结
- Java中自定义枚举(Enum)项的值及int和Enum的互相转换