?? 还记得上一篇是如何运用Enum来定义一周的的吗?
?
public enum Weekday { monday,tuesday,wensday,thursday,friday,saturday,sunday }
?
?? 显然,enum很像特殊的class,为了一探究竟,需要来看一下Weekday.java文件的字节码:
?
?
?
通过javap命令,查看字节码得知,实际上enum声明定义的Weekday就是一个类,该类继承(extends )自 java.lang.Enum类。
查看java api文档,其中对java.lang.Enum类的介绍非常简单明了,它就是所有 Java 语言枚举类型的公共基本类。
再来看看我们通常通过变量来实现Weekday的代码:
?
public static final String monday = "1"; public static final String tuesday = "2"; public static final String wensday = "3"; public static final String thursday = "4"; public static final String friday = "5"; public static final String saturday = "6"; public static final String sunday = "7";
?
其中字码中定义变量部分是不是与上面的代码很像,那我们来总结一下吧!
?
?
???? 恩,暂停一下吧,我要先来解答一下上一篇中的问题,怎么通过enum来定义变量并赋值。
???
public enum Weekday { monday("1"),tuesday("2"),wensday("3"),thursday("4"),friday("5"),saturday("6"),sunday("7"); // 成员变量 private String value; // 构造方法 private Weekday(String v){ value = v; } public String getValue() { return value; } public void setValue(String value) { this.value = value; } }
?
???? 哇有点小复杂,先消化一下吧!
?
?
?? 参考资料:
?????? http://www.cnblogs.com/frankliiu-java/archive/2010/12/07/1898721.html
?????? http://www.ibm.com/developerworks/cn/java/j-lo-enum/
原文:http://15838341661-139-com.iteye.com/blog/2220504