Java5 枚举类型使用总结经典(转)_一份耕耘,一份收获_百度空间
/**
* 狙击手活动
*/

public interface SharpShooter_1 {
public static final int LOCKED = 1;     //锁定
public static final int AIM = 2;        //瞄准
public static final int SHOOT = 3;      //射击
}
/**
* 测试方法
*/

public class TestDemo_1 {
public static void main(String args[]) {
TestDemo_1 test = new TestDemo_1();
test.doAction(1);
test.doAction(2);
test.doAction(3);
test.doAction(4);
}

/**
* 执行的动作
* @param action
*/

public void doAction(int action) {
switch (action) {
case SharpShooter_1.LOCKED:
System.out.println("1:锁定目标");
break;
case SharpShooter_1.AIM:
System.out.println("2:瞄准目标");
break;
case SharpShooter_1.SHOOT:
System.out.println("3:射击");
break;
default:
System.out.println("×:游戏还没有定义此动作!");
}
}
}
/**
* 测试普通枚举类型
*/

public class TestDemo_2 {

public static void main(String args[]){
TestDemo_2 test=new TestDemo_2();
test.doAction(SharpShooter_2.LOCKED);
test.doAction(SharpShooter_2.AIM);
test.doAction(SharpShooter_2.SHOOT);
}
/**
* 执行的动作
* @param action
*/

public void doAction(SharpShooter_2 action) {
switch (action) {
case LOCKED:
System.out.println("1:锁定目标");
break;
case AIM:
System.out.println("2:瞄准目标");
break;
case SHOOT:
System.out.println("3:射击");
break;
default:
System.out.println("×:游戏还没有定义此动作!");
}
}
}
          返回与此枚举常量的枚举类型相对应的 Class 对象。当且仅当 e1.getDeclaringClass() == e2.getDeclaringClass() 时,两个枚举常量 e1 和 e2 的枚举类型才相同。(由该方法返回的值不同于由 Object.getClass() 方法返回的值,Object.getClass() 方法用于带有特定常量的类主体的枚举常量。)
/**
* 带方法的枚举类型
*/

public enum SharpShooter_3 {
LOCKED,
AIM,
SHOOT;

public String getDesc() {
switch (this.ordinal()) {
case 0:
return "锁定目标";
case 1:
return "瞄准目标";
case 2:
return "射击";
default:
return "没有该枚举值!";
}
}
}
/**
* 带私有构造方法的枚举类型
*/

public enum SharpShooter_4 {
LOCKED("锁定目标"),
AIM("瞄准目标"),
SHOOT("射击");

private String desc;        //枚举说明

/**
* 私有的构造方法
*/

private SharpShooter_4(String desc){
this.desc=desc;
}

/**
* 获取枚举值的说明
* @return String
*/

public String getDesc(){
return desc;
}
}
/**
* 实现了接口的枚举类型
*/

public enum SharpShooter_5 implements IDesc {
LOCKED("锁定目标"),
AIM("瞄准目标"),
SHOOT("射击");

private String desc;        //枚举说明

/**
* 私有的构造方法
*/

private SharpShooter_5(String desc) {
this.desc = desc;
}

public String getDesc() {
return desc;
}
}
/**
* 每个枚举值自己实现接口
*/

public enum SharpShooter_6 implements IDesc {
LOCKED(){
public String getDesc() {
return "锁定目标";
}
},

AIM{
public String getDesc() {
return "瞄准目标";
}
},

SHOOT{
public String getDesc() {
return "射击";
}
}
}
/**
* 带有抽象方法的枚举类型
*/

public enum SharpShooter_7 {
LOCKED(){
public String getDesc() {
return "锁定目标";
}
},

AIM{
public String getDesc() {
return "瞄准目标";
}
},

SHOOT{
public String getDesc() {
return "射击";
}
};

/**
* 抽象方法,每个枚举值都必须自己实现
*
* @return String
*/

public abstract String getDesc();
}
枚 举的本质是类,在没有枚举之前,仍然可以按照java最基本的编程手段来解决需要用到枚举的地方。枚举屏蔽了枚举值的类型信息,不像在用 public static final定义变量必须指定类型。枚举是用来构建常量数据结构的模板,这个模板可扩展。枚举的使用增强了程序的健壮性,比如在引用一个不存在的枚举值的时 候,编译器会报错。枚举的更多用法还需要在开发中去研究创造,Java5、Java6增加了不少新的特性,技术在升级,对程序员来说就要学习。


郑重声明:资讯 【Java5 枚举类型使用总结经典(转)_一份耕耘,一份收获_百度空间】由 发布,版权归原作者及其所在单位,其原创性以及文中陈述文字和内容未经(企业库qiyeku.com)证实,请读者仅作参考,并请自行核实相关内容。若本文有侵犯到您的版权, 请你提供相关证明及申请并与我们联系(qiyeku # qq.com)或【在线投诉】,我们审核后将会尽快处理。
—— 相关资讯 ——