黑马程序员技术交流社区

标题: 返回值enum类型为什么只能第一行是枚举常量呢 [打印本页]

作者: 赵学刚    时间: 2012-12-15 16:38
标题: 返回值enum类型为什么只能第一行是枚举常量呢
问题:SUN(1),MON(),TUE,WED,THI,FRI,SAT;为什么在这个分号后面写 枚举常量 比如  BIGSUN;就会报错呢?
  1. import java.util.Date;

  2. public class EnumTest {

  3.         /**
  4.          * @param args
  5.          */
  6.         public static void main(String[] args) {
  7.                 // TODO Auto-generated method stub
  8.                 WeekDay weekDay = WeekDay.MON;
  9.                 System.out.println(weekDay.nextDay());
  10.                
  11.                 WeekDay weekDay2 = WeekDay.FRI;
  12.                 System.out.println(weekDay2);
  13.                 System.out.println(weekDay2.name());
  14.                 System.out.println(weekDay2.ordinal());       
  15.                 System.out.println(WeekDay.valueOf("SUN").toString());
  16.                 System.out.println(WeekDay.values().length);
  17.                
  18.                 new Date(300){};
  19.         }

  20.         public enum WeekDay{

  21.                 SUN(1),MON(),TUE,WED(),THI,FRI,SAT;
  22.                 private WeekDay(){System.out.println("first");}
  23.                 public char[] nextDay() {
  24.                         // TODO Auto-generated method stub
  25.                         return null;
  26.                 }
  27.                 private WeekDay(int day){System.out.println("second");}
  28.         }
  29.        
  30.         public enum TrafficLamp{
  31.                 RED(30){
  32.                         public  TrafficLamp nextLamp(){
  33.                                 return GREEN;
  34.                         }
  35.                 },
  36.                 GREEN(45){
  37.                         public  TrafficLamp nextLamp(){
  38.                                 return YELLOW;
  39.                         }                       
  40.                 },
  41.                 YELLOW(5){
  42.                         public  TrafficLamp nextLamp(){
  43.                                 return RED;
  44.                         }                       
  45.                 };
  46.                 public abstract TrafficLamp nextLamp();
  47.                 private int time;
  48.                 private TrafficLamp(int time){this.time = time;}
  49.         }
  50. }
复制代码

作者: 快乐之恋    时间: 2012-12-15 17:34
因为科学道理
作者: yuchen208    时间: 2012-12-16 20:05
向enum中添加新的方法。必须在enum实例序号的最后添加一个分号。
且之前不能之前定义了任何方法或属性,不然会报错
作者: 赵学刚    时间: 2012-12-16 22:13
嗯   我知道是这个现象,只是不知道造成这个现象的原因




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