Java 枚举常见7种用法
2013-01-08 19:44
323 查看
用法一:常量
在JDK1.5 之前,我们定义常量都是: publicstaticfianl....。现在好了,有了枚举,可以把相关的常量分组到一个枚举类型里,而且枚举提供了比常量更多的方法。Java代码
public enum Color
{
RED, GREEN, BLANK, YELLOW
}
用法二:switch
JDK1.6之前的switch语句只支持int,char,enum类型,使用枚举,能让我们的代码可读性更强。Java代码
enum Signal
{
GREEN, YELLOW, RED
}
public class TrafficLight
{
Signal color = Signal.RED;
public void change()
{
switch (color)
{
case RED:
color = Signal.GREEN;
break;
case YELLOW:
color = Signal.RED;
break;
case GREEN:
color = Signal.YELLOW;
break;
}
}
}
用法三:向枚举中添加新方法
如果打算自定义自己的方法,那么必须在enum实例序列的最后添加一个分号。而且 Java 要求必须先定义enum实例。Java代码
public enum Color
{
RED("红色", 1),
GREEN("绿色",2),
BLANK("白色",3),
YELLO("***",4);
//
成员变量
private String
name;
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;
}
//
get set 方法
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;
}
}
用法四:覆盖枚举的方法
下面给出一个toString()方法覆盖的例子。Java代码
public enum Color
{
RED("红色", 1),
GREEN("绿色",2),
BLANK("白色",3),
YELLO("***",4);
//
成员变量
private String
name;
private int index;
//
构造方法
private Color(String
name, int index) {
this.name
= name;
this.index
= index;
}
//覆盖方法
@Override
public String
toString() {
return this.index+"_"+this.name;
}
}
用法五:实现接口
所有的枚举都继承自java.lang.Enum类。由于Java 不支持多继承,所以枚举对象不能再继承其他类。Java代码
public interface Behaviour
{
void print();
String getInfo();
}
public enum Colorimplements Behaviour{
RED("红色", 1),
GREEN("绿色",2),
BLANK("白色",3),
YELLO("***",4);
//
成员变量
private String
name;
private int index;
//
构造方法
private Color(String
name, int index) {
this.name
= name;
this.index
= index;
}
//接口方法
@Override
public String
getInfo() {
return this.name;
}
//接口方法
@Override
public void print()
{
System.out.println(this.index+":"+this.name);
}
}
用法六:使用接口组织枚举
Java代码public interface Food
{
enum Coffee implements Food{
BLACK_COFFEE,DECAF_COFFEE,LATTE,CAPPUCCINO
}
enum Dessert implements Food{
FRUIT, CAKE, GELATO
}
}
用法七:关于枚举集合的使用
java.util.EnumSet和java.util.EnumMap是两个枚举集合。EnumSet保证集合中的元素不重复;EnumMap中的 key是enum类型,而value则可以是任意类型。关于这个两个集合的使用就不在这里赘述,可以参考JDK文档。关于枚举的实现细节和原理请参考:
参考资料:《ThinkingInJava》第四版
http://softbeta.iteye.com/blog/1185573
Java枚举可以配合JSTL标签和Hibernate等技术组合使用,使用效果将大大增强,代码清晰可维护性高.
转载请标明出处 http://blog.csdn.net/shimiso
技术交流群:173711587
相关文章推荐
- Java 枚举(enum) 详解7种常见的用法
- Java 枚举(enum) 详解7种常见的用法
- Java 枚举(enum) 详解7种常见的用法
- JAVA枚举(enum)详解7种常见的用法
- Java枚举(enum) 详解7种常见的用法
- Java 枚举(enum) 详解7种常见的用法
- Java 枚举(enum) 详解7种常见的用法
- Java 枚举(enum) 详解7种常见的用法
- Java枚举常见7种用法
- Java 枚举常见7种用法
- Java 枚举常见7种用法
- Java 枚举(enum) 详解7种常见的用法
- Java枚举(enum) 详解7种常见的用法
- Java枚举常见7种用法
- Java 枚举(enum) 详解7种常见的用法
- Java枚举常见7种用法
- Java 枚举(enum) 详解7种常见的用法
- Java 枚举(enum) 详解7种常见的用法(转)
- Java枚举常见7种用法
- Java 枚举(enum) 详解7种常见的用法