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

© heheka123 中级黑马   /  2014-4-9 16:39  /  1249 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

    看不懂这段代码,这个是枚举的基本模式吗?
    RED(35)这里面传入值,但是里面并没定义带参数的方法?
    {}之间为什么用,分开呢?
  1.     public enum TrafficLamp
  2.     {
  3.             RED(35)
  4.             {
  5.                     public TrafficLamp nextLamp()
  6.                     {
  7.                             return GREEN;
  8.                     }
  9.             },
  10.             GREEN(45)
  11.             {
  12.                     public TrafficLamp nextLamp()
  13.                     {
  14.                             return YELLOW;
  15.                     }
  16.             }
  17.             YELLOW(5)
  18.             {
  19.                     public TrafficLamp nextLamp()
  20.                     {
  21.                             return RED;
  22.                     }
  23.                   
  24.             };
  25.             public abstract TrafficLamp nextLamp();
  26.                     private int time;
  27.                     private TrafficLamp(int time)
  28.                             {this.time =time;}

  29.     }
复制代码

评分

参与人数 1技术分 +1 收起 理由
菜小徐 + 1

查看全部评分

1 个回复

正序浏览
总结了5点,希望能帮到你,如下面代码所示。
  1.         //1.先来个最基本,最简单的枚举
  2.         public enum Color{
  3.                 GREEN,RED,YELLOW,ORANGE,BLUE
  4.         }
  5.         //2.TrafficLamp中的每一个元素就是他的的实例对象,而这些实例对象可以有共同的构造方法和普通方法。如下所示
  6.         public enum Color2{
  7.                 GREEN,RED(3),YELLOW,ORANGE,BLUE;
  8.                 //这里来写两个构造函数,不同的实例对象可以使用不同的构造函数,如上行代码中比其他元素更特殊的RED(3)所示,用了带参数构造函数,其他的用无参数构造函数。
  9.                 //无参数构造函数
  10.                 private Color2(){
  11.                         System.out.println("hello");
  12.                 }
  13.                 //有参数构造函数
  14.                 private Color2(int num){
  15.                         System.out.println(num);
  16.                 }
  17.         }
  18.         //3.通过上面两个例子,再来理解这个枚举
  19.         public enum TrafficLamp
  20.         {
  21.                 RED(35)
  22.                 {
  23.                         public TrafficLamp nextLamp()
  24.                         {
  25.                                 return GREEN;
  26.                         }
  27.                 },
  28.                 GREEN(45)
  29.                 {
  30.                         public TrafficLamp nextLamp()
  31.                         {
  32.                                 return YELLOW;
  33.                         }
  34.                 },
  35.                 YELLOW(5)
  36.                 {
  37.                         public TrafficLamp nextLamp()
  38.                         {
  39.                                 return RED;
  40.                         }
  41.                       
  42.                 };
  43.                 //4.这下面一小部分代码,即说明每个实例对象都 有方法nextLamp(),都有一个变量time和带参数int型数据的构造函数.
  44.                 //5.普通方法必须写成静态的,然后被子类复写。
  45.                 public abstract TrafficLamp nextLamp();
  46.                 private int time;
  47.                 private TrafficLamp(int time)
  48.                                 {this.time =time;}

  49.         }
复制代码

评分

参与人数 1技术分 +1 收起 理由
菜小徐 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马