黑马程序员技术交流社区

标题: 张老师的枚举代码求解释。。。 [打印本页]

作者: 周四川    时间: 2012-4-18 19:31
标题: 张老师的枚举代码求解释。。。
  1. public enum TrafficLamp
  2.         {
  3.                 RED(30) {
  4.                         @Override
  5.                         public TrafficLamp nextLamp() {
  6.                                 // TODO Auto-generated method stub
  7.                                 return GREEN;
  8.                         }
  9.                 },GREEN(45) {
  10.                         @Override
  11.                         public TrafficLamp nextLamp() {
  12.                                 // TODO Auto-generated method stub
  13.                                 return YELLOW;
  14.                         }
  15.                 },YELLOW(5) {
  16.                         @Override
  17.                         public TrafficLamp nextLamp() {
  18.                                 // TODO Auto-generated method stub
  19.                                 return RED;
  20.                         }
  21.                 };
  22.                 public abstract TrafficLamp nextLamp();
  23.                 private int time;
  24.                 private TrafficLamp(int time)
  25.                 {
  26.                         this.time=time;
  27.                 }
  28.         }
复制代码
求详细解释下...
作者: 刘旭    时间: 2012-4-18 19:48
     定义个关于交通灯的枚举类TrafficLamp,此类有一个构造方法,构造方法传入一个参数,参数表示灯亮的时间。还有一个nextLamp();的抽象方法,表示当前灯灭后下一展应该亮的灯。由于不同的灯灭后,下一展应该亮的灯是不同的,所以定义为抽象方法,在具体实例的子类中实现此方法。此抽象方法就像定义了一个标准或者说协议,此标准定义了子类必须拥有的一个功能,子类必须实现此标准以使子类拥有标准所拥有的功能。然后,采用内部类的方法定义了3盏灯。
作者: 周四川    时间: 2012-4-19 12:12
刘旭 发表于 2012-4-18 19:48
定义个关于交通灯的枚举类TrafficLamp,此类有一个构造方法,构造方法传入一个参数,参数表示灯亮的时 ...

谢谢你的解释,不过貌似版主咋不给我加分呢?




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2