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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

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 个回复

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