您的位置:首页 > 编程语言 > Java开发

jdk1.5新特性5之枚举之枚举类型的应用

2012-11-14 15:18 405 查看


一 简单应用

package cn.xy.Enum;

public enum TrafficLamp

{

RED,GREEN,YELLOW;

}

TrafficLamp red = TrafficLamp.RED;

System.out.println(red);

System.out.println(red.name());

System.out.println(red.ordinal());

System.out.println(TrafficLamp.valueOf("YELLOW"));

TrafficLamp[] ts = TrafficLamp.values();

for (TrafficLamp t : ts)

{

System.out.println(t.name());

}



结果

RED

RED

0

YELLOW

RED

GREEN

YELLOW





二 复杂应用

package cn.xy.Enum;

public enum TrafficLampComplex

{

// 元素列表必须放在枚举类的最上面

RED(10)

{

@Override

public TrafficLampComplex nextLamp()

{

return GREEN;

}

@Override

public String getValue()

{

return "红灯,时长" + this.getTime();

}

},

GREEN(10)

{

@Override

public TrafficLampComplex nextLamp()

{

return YELLOW;

}

@Override

public String getValue()

{

return "绿灯,时长" + this.getTime();

}

},

YELLOW(5)

{

@Override

public TrafficLampComplex nextLamp()

{

return YELLOW;

}

@Override

public String getValue()

{

return "黄灯,时长" + this.getTime();

}

};

/**

* 时长

*/

private int time;

TrafficLampComplex()

{

}

TrafficLampComplex(int time)

{

this.time = time;

}

/**

* 下一个灯

* @return

*/

public abstract TrafficLampComplex nextLamp();

/**

* 取值

* @return

*/

public abstract String getValue();

public int getTime()

{

return time;

}

public void setTime(int time)

{

this.time = time;

}

}

TrafficLampComplex tcRed = TrafficLampComplex.RED;

System.out.println(tcRed.nextLamp());

System.out.println(tcRed.getValue());



结果

GREEN

红灯,时长10





三 提示

如果理解该例子有困难,请参看本博客的《jdk1.5新特性5之枚举之模拟枚举类型》
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: