黑马程序员技术交流社区
标题:
设计一个交通灯枚举类出现的问题(已解决)
[打印本页]
作者:
杨震
时间:
2012-8-29 13:19
标题:
设计一个交通灯枚举类出现的问题(已解决)
本帖最后由 杨震 于 2012-8-30 11:25 编辑
复制代码
package com.itheima;
/*
* 定义一个交通枚举,包含红灯,绿灯,黄灯,需要有获得下一个灯的方法.例如:红灯获取下一个灯是绿灯,绿灯获取下一个灯是黄灯
* @author 杨震
*
*/
public class Test3 {
public static void main(String[] args) {
Lamp red = Lamp.red;
System.out.println(red.getNext());
}
}
enum Lamp {
red("green"), green("yellow"), yellow("red");
private Lamp next;
private Lamp(String next)
{
this.next = Lamp.valueOf(next);
}
public Lamp getNext()
{
return next;
}
}
<img border="0" alt="" src="http://bbs.itheima.com/forum.php?mod=image&aid=6842&size=300x300&key=a110f35716b06bb978a1499fd7564458&nocache=yes&type=fixnone" aid="attachimg_6842">
复制代码
捕获.PNG
(15.02 KB, 下载次数: 25)
下载附件
2012-8-29 13:22 上传
作者:
杨震
时间:
2012-8-29 13:24
编译报错,好像是说初始化异常,不知道怎么回事
作者:
曹操
时间:
2012-8-29 16:42
楼主可以这样,编写一个枚举类,一个运行类
1,首先定义一个枚举类,每个枚举类都有返回下一个灯的方法
public enum trafficLamp{
RED{
public trafficLamp nextLamp() {
return GREEN;
}
},
GREEN{
public trafficLamp nextLamp() {
return YELLOW;
}
},
YELLOW{
public trafficLamp nextLamp() {
return RED;
}
};
public abstract trafficLamp nextLamp();
}
2,再通过运行类 whlie循环调用 来测试题目要求的结果
public class MainTest {
public static void main(String[] args){
trafficLamp trf = trafficLamp.RED;
while(true){
trf = trf.nextLamp();
System.out.println(trf);
}
}
}
作者:
杨震
时间:
2012-8-30 11:22
21.enum Lamp {
22. red("green"), green("yellow"), yellow("red");
23.
24.
25. private String next;
26.
27. private Lamp(String next)
28. {
29. this.next = next;
30. }
31.
32. public Lamp getNext()
33. {
34. return Lamp.valueOf(next);
35. }
36.}
复制代码
谢谢楼上的,你的方法也很好,我知道自己错哪了,死循环,张老师提到过的,忘记了.
作者:
杨震
时间:
2012-8-30 11:23
以上是我的改进
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2