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

5,枚举 1.5以后的新特性。
> 枚举就是要【让某个类型的 变量的取值 只能为若干个 固定值 中的一个,否则,编译器就会报错】。枚举可以让编译器在编译时就可以控制源程序中填写的非法值,普通变量的方法在开发阶段无法实现这一目标。
>> 普通类实现枚举功能
----私有的构造方法
    不能随便创建对象。
    privateWeekDay(){}
----每个元素分别用一个公有的静态成员变量表示
    public finalstatic WeekDay SUN = new WeekDay();//需要多少写多少元素。
----可以有若干公有方法或抽象方法,例如,要提供nextDay方法必须是抽象的。采用抽象方定义nextDay就将大量的if.else语句转移成了一个个独立的类。
    publicWeekDay nextDay(){
    if(this==SUN0{
           return MON;
    }else{
           return SUM;
    }
   }-->public abstract WeekDay nextDay();成语写法为:
    public finalstatic WeekDay SUN =new WeekDay(){
    publicWeekDay nextDay(){
        return MON;
    }   
};
    //隐式调用的:
    publicString toString(){
    returnthis==NUM?"NUM":"SUM";//用大量if.else写出全部。
    }
    //调用类中:
    main:WeekDayweekDay=WeekDay.MON;
     System.out.println(weekDay.nextDay());//SUM
>> 枚举的基本应用(枚举的入门)
---自动生成toString()方法。
---方法:
    枚举类对象.name()//获取对象名称
    枚举类对象.ordinal()//获取对象的排序位置,第几个。
    枚举类.valueOf("str")//返回str对应的类的实例对象。
    枚举类.values()//把枚举中的元素转换成数组,.length等对数组操作。
>> 实现带有构造方法的枚举
构造方法必须是被 private 修饰。
创建元素时,不带()的调用无参的构造方法。
带有()的由()中的内容确定调用的哪个有参构造方法。
>> 实现带有抽象方法的枚举
>> 注意:
1,枚举的元素列表 必须位于所有的成分 之前。
2,构造方法必须 私有。
3,创建元素时,自动调用对应参数的构造方法。有几个元素就调用几次构造方法。
4,元素后面的 ; 可以有也可以没有。当后面有内容时,要加 ; 。
5,【!】枚举只有一个成员时,就可以作为一种单例的实现方式。
    单例可以用枚举实现。
    枚举就是一个特殊的类,构造方法不用自己写了,默认的就是私有的,不带参数的。new Instance()代码也不用自己写了,元素自然的就new出来了。
>>从交通灯枚举类中可以获取:
  1,内部类,
  2,提高了一种编程的思想:
  3,类的方法返回的类型可以是本类类型。
  4,类里面可以定义静态常量。常量指向的结果就是自己这个类型的实例对象。
交通灯类:
    public enumTrafficLamp{
        RED(30){
            public  TrafficLamp nextLamp(){
                returnGREEN;
            }
        },
        GREEN(45){
            public  TrafficLamp nextLamp(){
                returnYELLOW;
            }           
        },
        YELLOW(5){
            public  TrafficLamp nextLamp(){
                returnRED;
            }           
        };
        publicabstract TrafficLamp nextLamp();
        privateint time;
        privateTrafficLamp(int time){this.time = time;}
    }

评分

参与人数 1技术分 +1 收起 理由
敏敏好学 + 1

查看全部评分

13 个回复

正序浏览
wstt 初级黑马 2014-10-2 09:21:11
14#
呵呵,总结的不错哈,加油!
回复 使用道具 举报
收藏了,以后有用
回复 使用道具 举报
完美,以前一直看不懂,不知道枚举是什么意思。
回复 使用道具 举报
多谢分享
回复 使用道具 举报
48期是不是不考高新了。。
回复 使用道具 举报
感谢楼主分享!
回复 使用道具 举报
太经典。。。正看到这个部分呢。。。谢了
回复 使用道具 举报
不系之舟王 来自手机 中级黑马 2014-10-1 09:03:06
7#
收藏看看
回复 使用道具 举报
我为你着迷 来自手机 金牌黑马 2014-10-1 03:06:07
地板
很详细  谢谢分享
回复 使用道具 举报
谢谢分享,收藏了
回复 使用道具 举报
感谢分享经验
回复 使用道具 举报
赞一个 。
回复 使用道具 举报
谢谢分享!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马