枚举(高新技术)

来源:互联网 发布:西工大编程网址 编辑:程序博客网 时间:2024/05/22 06:12


枚举简单应用

共享常数

不用枚举

使用枚举

public interface ActionConstans{

public static final int TURN_LEFT=1;

public static final int TURN_RIGHT=2;

public static final int SHOOT=3;

}

public void someMethod(){

...

doAction(ActionConstans.TURN_RIGHT);

....}

public void doAction(int action){

switch(action){

case ActionConstans.TURN_LEFT:

syso("向左转");

break;

case ActionConstans.TURN_RIGHT:

syso("向右转");

break;

case ActionConstans.SHOOT:

syso("射击");

break;

}

}

}

public enum Action{

TURN_LEFT,TURN_RIGHT,SHOOT

}

public class EnumDemo {

    public static void main(String[] args) {

        doAction(Action.TURN_RIGHT);

    }

public static void doAction(Action action) {

switch(action) { 

case TURN_LEFT: 

syso("向左转"); 

break; 

case TURN_RIGHT: 

syso("向右转");                 

break;       

case SHOOT:                

syso("射击"); 

break; 

}

}

这样不安全:oAction(int action)接受一个int类型,而int类型的数太多了,

这样就会出错,还需要一些检查工作

switch语句中可以接受enum类型;

1doAction()中接受的类型都是Action输入其他类型就会报错;

2)如果switch中加入了不属于Action中的枚举值,也会报错。

注意:

1)定义枚举类型,其实就是定义一个类

2)使用enum定义枚举类型时,实际上定义出来的类型时继承自java.lang.Enum类,

3每个枚举成员其实就是定义的枚举类型的一个实例,他们都是被默认为final,无法

     修改常数名称所设置的值,他们也是publicstatic的成员。可以用类名调用