Java 枚举7常见种用法 很好的文章

DK1.5引入了新的类型——枚举。在Java中它虽然算个“小”功能,却给我的开发带来了“大”方便。

用法一:常量

在JDK1.5之前,我们定义常量都是:publicstaticfianl….。现在好了,有了枚举,可以把相关的常量分组到一个枚举类型里,而且枚举提供了比常量更多的方法。

Java代码

    publicenumColor{RED,GREEN,BLANK,YELLOW}

用法二:switch

JDK1.6之前的switch语句只支持int,char,enum类型,使用枚举,能让我们的代码可读性更强。

Java代码

    enumSignal{GREEN,YELLOW,RED}publicclassTrafficLight{Signalcolor=Signal.RED;publicvoidchange(){switch(color){caseRED:color=Signal.GREEN;break;caseYELLOW:color=Signal.RED;break;caseGREEN:color=Signal.YELLOW;break;}}}

用法三:向枚举中添加新方法

如果打算自定义自己的方法,那么必须在enum实例序列的最后添加一个分号。而且Java要求必须先定义enum实例。

Java代码

    publicenumColor{RED("红色",1),GREEN("绿色",2),BLANK("白色",3),YELLO("黄色",4);//成员变量privateStringname;privateintindex;//构造方法privateColor(Stringname,intindex){this.name=name;this.index=index;}//普通方法publicstaticStringgetName(intindex){for(Colorc:Color.values()){if(c.getIndex()==index){returnc.name;}}returnnull;}//getset方法publicStringgetName(){returnname;}publicvoidsetName(Stringname){this.name=name;}publicintgetIndex(){returnindex;}publicvoidsetIndex(intindex){this.index=index;}}

用法四:覆盖枚举的方法

下面给出一个toString()方法覆盖的例子。

Java代码

    publicenumColor{RED("红色",1),GREEN("绿色",2),BLANK("白色",3),YELLO("黄色",4);//成员变量privateStringname;privateintindex;//构造方法privateColor(Stringname,intindex){this.name=name;this.index=index;}//覆盖方法@OverridepublicStringtoString(){returnthis.index+"_"+this.name;}}

用法五:实现接口

所有的枚举都继承自java.lang.Enum类。由于Java不支持多继承,所以枚举对象不能再继承其他类。

Java代码

    publicinterfaceBehaviour{voidprint();StringgetInfo();}publicenumColorimplementsBehaviour{RED("红色",1),GREEN("绿色",2),BLANK("白色",3),YELLO("黄色",4);//成员变量privateStringname;privateintindex;//构造方法privateColor(Stringname,intindex){this.name=name;this.index=index;}//接口方法@OverridepublicStringgetInfo(){returnthis.name;}//接口方法@Overridepublicvoidprint(){System.out.println(this.index+":"+this.name);}}

用法六:使用接口组织枚举

Java代码

    publicinterfaceFood{enumCoffeeimplementsFood{BLACK_COFFEE,DECAF_COFFEE,LATTE,CAPPUCCINO}enumDessertimplementsFood{FRUIT,CAKE,GELATO}}

用法七:关于枚举集合的使用

java.util.EnumSet和java.util.EnumMap是两个枚举集合。EnumSet保证集合中的元素不重复;EnumMap中的 key是enum类型,而value则可以是任意类型。关于这个两个集合的使用就不在这里赘述,可以参考JDK文档。

关于枚举的实现细节和原理请参考:

人生的成功不过是在紧要处多一份坚持,

Java 枚举7常见种用法 很好的文章

相关文章:

你感兴趣的文章:

标签云: