這是一個枚舉類Day.javahtml
public enum Day { MONDAY("星期一"), TUESDAY("星期二"), WEDNESDAY("星期三"), THURSDAY("星期四"), FRIDAY("星期五"), SATURDAY("星期六"), SUNDAY("星期天"); /** * 中文描述 */ private String desc; public String getDesc() { return desc; } /** * 私有構造方法,防止被外部調用 * @param desc */ private Day(String desc) { this.desc = desc; } }
進入到這個文件目錄下編譯該文件:javac -encoding UTF-8 Day.javajava
這時候,該目錄會有一個Day.class編譯後的字節碼文件;this
再執行:javap -p Day.class spa
Compiled from "Day.java" public final class Day extends java.lang.Enum<Day> { public static final Day MONDAY; public static final Day TUESDAY; public static final Day WEDNESDAY; public static final Day THURSDAY; public static final Day FRIDAY; public static final Day SATURDAY; public static final Day SUNDAY; private java.lang.String desc; private static final Day[] $VALUES; public static Day[] values(); public static Day valueOf(java.lang.String); public java.lang.String getDesc(); private Day(java.lang.String); static {}; }
能夠看到,public enum Day定義一個枚舉類,反編譯以後看到public final class Day extends java.lang.Enum<Day>Java枚舉類不能被繼承;code
每個枚舉都是public static final只能被賦值一次,大概就是這些,若是想看更加詳細的反編譯可執行:javap -c Day (這裏不要寫文件後綴.class);htm
反編譯能夠輸出常量池的信息以及元素個數:javap -verbose Day.classblog
Java枚舉的簡單例子:http://www.javashuo.com/article/p-qfipbdfg-gh.html繼承