A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 杨震 于 2012-8-30 11:25 编辑
复制代码
  1. package com.itheima;


  2. /*
  3. * 定义一个交通枚举,包含红灯,绿灯,黄灯,需要有获得下一个灯的方法.例如:红灯获取下一个灯是绿灯,绿灯获取下一个灯是黄灯
  4. * @author 杨震
  5. *
  6. */



  7. public class Test3 {

  8.         public static void main(String[] args) {
  9.                 Lamp red = Lamp.red;
  10.                 System.out.println(red.getNext());
  11.         }

  12. }

  13. enum Lamp {
  14.         red("green"), green("yellow"), yellow("red");
  15.         
  16.         
  17.         private Lamp next;
  18.         
  19.         private Lamp(String next)
  20.         {
  21.                 this.next = Lamp.valueOf(next);
  22.         }
  23.         
  24.         public Lamp getNext()
  25.         {
  26.                 return next;
  27.         }
  28. }






  29. <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, 下载次数: 31)

捕获.PNG

4 个回复

倒序浏览
编译报错,好像是说初始化异常,不知道怎么回事
回复 使用道具 举报

楼主可以这样,编写一个枚举类,一个运行类
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);
            }
    }
}
回复 使用道具 举报
  1. 21.enum Lamp {

  2. 22.        red("green"), green("yellow"), yellow("red");

  3. 23.        

  4. 24.        

  5. 25.        private String next;

  6. 26.        

  7. 27.        private Lamp(String next)

  8. 28.        {

  9. 29.                this.next = next;

  10. 30.        }

  11. 31.        

  12. 32.        public Lamp getNext()

  13. 33.        {

  14. 34.                return Lamp.valueOf(next);

  15. 35.        }

  16. 36.}
复制代码
谢谢楼上的,你的方法也很好,我知道自己错哪了,死循环,张老师提到过的,忘记了.
回复 使用道具 举报
以上是我的改进
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马