日期:2014-05-20  浏览次数:20708 次

枚举代码的调用疑问
请问这段代码该怎么调用?

package thirty;



public enum enumerationLamp {
 
   //定义绿灯,实现下一个灯是黄灯
   GREED 
   {
        public enumerationLamp next() 
        {
             return YELLOW;
        }
   },
   //定义黄灯,实现下一个等是红灯
   YELLOW 
   {
        public enumerationLamp next() 
        {
             return RED;
        }
   },
   //定义红灯实现下一个等是绿灯
   RED 
   {
        public enumerationLamp next() 
        {
             return GREED;
        }
   };
 
   //定义一个抽象方法,让枚举成员去实现
   public abstract enumerationLamp next();
 
   //重写toString可以实现名字的显示
   public String toString()
   { 
        String name=null;
        switch(this)
        {
             case GREED :   name ="绿灯"; break;
             case RED :     name ="红灯"; break;
             case YELLOW :  name ="黄灯"; break;
        }
        return name; 
   }
}

------解决方案--------------------
加上一个主类和主函数就行了:
package dsg;

enum enumerationLamp {
 
   //定义绿灯,实现下一个灯是黄灯
   GREED 
   {
        public enumerationLamp next() 
        {
             return YELLOW;
        }
   },
   //定义黄灯,实现下一个等是红灯
   YELLOW 
   {
        public enumerationLamp next() 
        {
             return RED;
        }
   },
   //定义红灯实现下一个等是绿灯
   RED 
   {
        public enumerationLamp next() 
        {
             return GREED;
        }
   };
 
   //定义一个抽象方法,让枚举成员去实现
   public abstract enumerationLamp next();
 
   //重写toString可以实现名字的显示
   public String toString()
   { 
        String name=null;
        switch(this)
        {
             case GREED :   name ="绿灯"; break;
             case RED :     name ="红灯"; break;
             case YELLOW :  name ="黄灯"; break;
        }
        return name; 
   }
}
public class Call {
public static void main(String[] args) {
enumerationLamp en = enumerationLamp.GREED;
System.out.println(en);
}
}

------解决方案--------------------
调用代码如下:

 public static void main(String[] args) {
   enumerationLamp el =  enumerationLamp.GREED;
   System.out.println(el);    //输出:绿灯
 }