黑马程序员技术交流社区
标题:
关于枚举提前使用未定义元素的疑问
[打印本页]
作者:
赖龙威
时间:
2013-10-17 21:59
标题:
关于枚举提前使用未定义元素的疑问
今天在看张老师的交通灯管理系统的时候,他设计Lamp这个枚举的时候,构造函数用的是String,老师说,这是为了避免使用为定义的变量。有没有其他方法?我记得学C++有这个功能
package cn.itcast.traffic;
public enum Lamp {
S2N("N2S","S2W",false),S2W("N2E","E2W",false),E2W("W2E","N2S",false),E2S("W2N","S2N",false),
N2S(null,null,false),N2E(null,null,false),W2E(null,null,false),W2N(null,null,false),
S2E(null,null,true),E2N(null,null,true),N2W(null,null,true),W2S(null,null,true);
private String opposite;
private String next;
private boolean lighted;
private Lamp(String opposite, String next, boolean lighted) {
this.opposite = opposite;
this.next = next;
this.lighted = lighted;
}
public boolean isLighted() {
return lighted;
}
public void light() {
lighted = true;
if (opposite != null) {
Lamp.valueOf(opposite).light();
}
}
public Lamp shutdown() {
lighted = false;
Lamp lamp = null;
if (opposite != null)
Lamp.valueOf(opposite).shutdown();
if (next != null) {
lamp = Lamp.valueOf(next);
lamp.light();
}
return lamp;
}
}
复制代码
作者:
斗胆潇洒
时间:
2013-10-18 15:34
道友,
C++有吗?C++的枚举更简单,更固定。
没声明的东西,能先用?
反正我只记得的,用前先声明,
张老师这方法,已经够巧秒了
作者:
To
时间:
2013-10-20 19:05
楼主你好,如果问题已解决请将帖子状态修改为提问结束,如果未解决请继续提问,谢谢合作
如果不会修改请看解释帖:
http://bbs.itheima.com/thread-89313-1-1.html
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2