欢迎来到天天文库
浏览记录
ID:43313138
大小:132.42 KB
页数:11页
时间:2019-09-30
《黑马程序员-java枚举总结》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、一、为什么要有枚举先看一个问题:当要定义表示一个星期几的变量时,该如何定义?假设有人用1-7分别表示周一至周日,但也有人可能用0表示周日。枚举的出现是为了让某个类型的变量的取值只能为若干个固定值中的一个,否则编译器就会报错。枚举可以让编译器在编译时期就发现源程序中填写的非法值,而普通变量在开发阶段无法实现这个目标。首先,我们先试着用普通类模拟枚举,这样便于后面我们对枚举的理解二.用普通类模拟枚举的实现原理1)私有的构造方法;2)每个元素分别用一个公有的静态成员变量表示;3)可以有若干个公有方法或抽象方法。例1:[
2、java]viewplaincopyC1•packagecom•cn•itcast;2.3.publicabstractclassWeekDayl{4.//构造方法私有,从而从外部新建WeekDayl对象5.privateWeekDayl(){}6./********************************************************************************7.//定义7个表示星期的常量,且是WeekDayl类型8.publicfinalstaticWeekDa
3、ySUN=newWeekDay();9.publicfinalstaticWeekDayMON=newWeekDay();10.publicfinalstaticWeekDayTUE=newWeekDay();11・publicfinalstaticWeekDayWEN=newWeekDay();12.publicfinalstaticWeekDayTHU=newWeekDay();13.publicfinalstaticWeekDayFRI=newWeekDay();14.publicfinalstaticWe
4、ekDaySAT=newWeekDay();15.16.〃定义返回第二天的方法,利用if・・・else判断,麻烦17.publicWeekDaynextDay(){18.if(this==SUN)19.returnMON;20.elseif(this==MON)21.returnTUE;22.elseif(this==TUE)23.returnWEN;24.elseif(this==WEN)25.returnTHU;26.elseif(this==THU)returnFRI;elseif(this==FRI)re
5、turnSAT;elsereturnSUN;}//复写toString方法》利用if・・.else判断,麻烦publicStringtoString(){if(this==SUN)return"SUN”;elseif(this==MON)return"MON”;elseif(this==TUE)return”TUEf,;elseif(this==WEN)return"WEN”;elseif(this==THU)return"THU”;elseif(this==FRI)return,,FRIi,;elseretur
6、n”SAT”;}*****************************************************************************************///利用if...else断,麻烦。直接在定义每个对象时,利用匿名内部类复写nextDay().toString()方法publicfinalstaticWeekDaylSUN=newWeekDayl(){publicWeekDaylnextDay(){returnMON;}publicStringtoString(){
7、return"SUN";}};publicfinalstaticWeekDaylMON=newWeekDayl(){publicWeekDaylnextDay(){returnTUE;}publicStringtoString(){return"MON";}};publicfinalstaticWeekDaylTUE=newWeekDayl(){publicWeekDaylnextDay(){returnWEN;}publicStringtoString(){return"TUE11;}};publicfinal
8、staticWeekDaylWEN=newWeekDayl(){publicWeekDaylnextDay(){returnTHU;}publicStringtoString(){return"WEN";}};publicfinalstaticWeekDaylTHU=newWeekDayl(){publicWeekDaylnextDay(){returnFRI;}publ
此文档下载收益归作者所有