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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

这是枚举的代码
public class EnumDemo2
{
        enum Weekday
                {
                SUN(5), MON(), TUE, WED, THU, FRI, SAT;
                private Weekday()
                        {
                        System.out.println(this.name());
                    }

                private Weekday(int day)
                        {
                        System.out.println(day);
                    }
            }

        public static void main(String[] args)
                {
                Weekday sun=Weekday.SUN;
                System.out.println(sun.name());
            }
}

------------------------------------------------------------
Weekday.SUN;具体是什么意思?望大神解答!

1 个回复

正序浏览
本帖最后由 hhqnmlgb 于 2015-6-27 19:54 编辑

其实枚举也是用普通类实现的
它会自动私有化构造函数
字段都是:public static 枚举的类型 = new 类型();
  1. enum Weekday
  2. {
  3.         SUN, MON, TUE, WED, THU, FRI, SAT;
  4. }
  5. //上面的枚举可以看成这样一个类:
  6. class Week
  7. {
  8.         private Week(){}
  9.         public static Week SUN=new Week();
  10.         public static Week MON=new Week();
  11.         public static Week TUE=new Week();
  12.         public static Week WED=new Week();
  13.         public static Week THU=new Week();
  14.         public static Week FRI=new Week();
  15.         public static Week SAT=new Week();
  16. }
复制代码

Weekday.SUN;就是Weekday型的一个静态字段
稍复杂的枚举:
  1. enum Weekday
  2. {
  3.         SUN(0), MON(1), TUE, WED, THU, FRI, SAT;//通过"()"来传参数指定用哪个构造方法
  4.         private int day;
  5.         private Weekday(){}
  6.         private Weekday(int day)
  7.         {
  8.                 this.day=day;
  9.         }
  10.         public int getDay()
  11.         {
  12.                 return day;
  13.         }
  14. }
  15. //上面的枚举可以看成这样一个类:
  16. class Week
  17. {
  18.         private int day;
  19.         private Week(){}
  20.         private Week(int day)
  21.         {
  22.                 this.day=day;
  23.         }
  24.         public static Week SUN=new Week(0);
  25.         public static Week MON=new Week(1);
  26.         public static Week TUE=new Week();
  27.         public static Week WED=new Week();
  28.         public static Week THU=new Week();
  29.         public static Week FRI=new Week();
  30.         public static Week SAT=new Week();
  31.         
  32.         public int getDay()
  33.         {
  34.                 return day;
  35.         }
  36. }
复制代码







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