枚举类型的使用

来源:互联网 发布:淘宝自动回复经典语句 编辑:程序博客网 时间:2024/05/23 13:42

创建枚举类型要使用enum关键字,隐含了所创建的类型都是java.lang.Enum类的

子类(java.lang.Enum是一个抽象类)。每一个值都映射到了 protected Enum(String name,int ordinal)

构造函数中。默认情况下,每个值的名称被转换成一个字符串,并且顺序的排列。这里可以自定义构造hans

package li.shi;public class EnumTest {public enum Color{RED("红色",1),GREEN("绿色",2),BLACK("白色",3),YELLOW("黄色",4);private String name;public String getName() {return name;}public void setName(String name) {this.name = name;}public int getIndex() {return index;}public void setIndex(int index) {this.index = index;}private int index;private Color(String name,int index){this.name=name;this.index=index;}public static String getName(int index){for(Color c:Color.values()){if(c.getIndex()==index){return c.name;}}return null;}@Overridepublic String toString(){return this.index+"_"+this.name;}}public class Test1{}public static void main(String[] args) {// TODO Auto-generated method stubSystem.out.println(Color.getName(Color.RED.getIndex()));System.out.println(Color.RED.toString());}}

其实枚举就是一个类,只是继承了enum而已,当枚举类被编译之后,就是一个class类型了。里面的

元素其实就是常量。在effective in java中提到,使用枚举来强化单例模式。这是因为,把枚举类型的构造

函数设置为私有的,就不允许被继承了和实例化了,这样就可以保证实例只有一个。单元素的枚举类型,适合

实现单例模式。对于序列化和反射攻击都有帮助。

这里有完整的介绍:http://www.cnblogs.com/happyPawpaw/archive/2013/04/09/3009553.html

0 0
原创粉丝点击