JDK1.5出来的东西,提供了一个更好的方式来定义常量.枚举也就是相当于java当中的一个类,一个类型.也可以在里面加入构造子,当必须定义为私有的.也可定义属性,方法如下:
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package enumpkg;
/**
*
* @author Administrator
*/
public enum Action {
SHOOT("SHOOT"),RUN("RUN"),TURNLEFT("TURNLEFT"),TURNRIGHT("TURNRIGHT");
private String description;
private Action(String description) {
this.description = description;
}
public String toString() {
return description;
}
}
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package enumpkg;
/**
*
* @author Administrator
*/
public class Do {
public void doAction(Action action) {
switch(action) {
case SHOOT:
System.out.println("do SHOOT");
break;
case RUN:
System.out.println("do RUN");
break;
case TURNLEFT:
System.out.println("do TURNLEFT");
break;
case TURNRIGHT:
System.out.println("do TURNRIGHT");
break;
}
}
}
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package enumpkg;
/**
*
* @author Administrator
*/
public class Main {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// TODO code application logic here
Do dothing = new Do();
dothing.doAction(Action.SHOOT);
dothing.doAction(Action.RUN);
dothing.doAction(Action.TURNLEFT);
dothing.doAction(Action.TURNRIGHT);
Action walk=Action.valueOf("SHOOT");
dothing.doAction(walk);
Action[] actions =Action.values();
for(Action a:actions)
System.out.println(a.toString());
}
}