收藏 分销(赏)

2021年JAVA枚举类型知识点.docx

上传人:二*** 文档编号:4576765 上传时间:2024-09-30 格式:DOCX 页数:12 大小:124.56KB 下载积分:5 金币
下载 相关 举报
2021年JAVA枚举类型知识点.docx_第1页
第1页 / 共12页
本文档共12页,全文阅读请下载到手机保存,查看更方便
资源描述
publicenumColor{ RED,BLUE,BLACK,YELLOW,GREEN } enum很像特殊class,事实上enum声明定义类型就是一种类 这些类都是库类中Enum类子类(Java.lang.Enum<E>),她们继承了Enum中许多有用办法 枚举值都是publicstaticfinal,也就是常量,因而,枚举类中枚举值应所有大写 枚举类型是class,在枚举类型中有构造器,办法和字段。但枚举构造器有很大不同: 1.构造器只是在构造枚举值时候被调用 2.构造器私有private,不容许有public构造器 3.枚举可以在switch语句中使用 枚举特点 1.用enum定义枚举类默认继承了Java.lang.Enum类而不是继承了Object类。其中java.lang.Enum类实现了java.lang.Serializable和java.lang.Comparable两个接口 2.枚举类构造函数只能使用private访问修饰符,如果省略了其构造器访问控制符,则默认使用private修饰; 3.枚举类所有实例必要在枚举类中显式列出,否则这个枚举类将永远都不能产生实例。列出这些实例时,系统会自动添加publicstaticfinal修饰,无需程序员显式添加。 代码如下: publicenumWeek{ MON{ publicStringtoLocaleString{ return"星期一"; } },TUES{ publicStringtoLocaleString{ return"星期二"; } },WEB{ publicStringtoLocaleString{ return"星期三"; } },THUR{ publicStringtoLocaleString{ return"星期四"; } },FRI{ publicStringtoLocaleString{ return"星期五"; } },SAT{ publicStringtoLocaleString{ return"星期六"; } },SUN{ publicStringtoLocaleString{ return"星期日"; } }; publicabstractStringtoLocaleString; } 枚举遍历 代码如下: publicclassEnumTest{ publicstaticvoidmain(Stringargs){ for(Weekw:Week.values){ System.out.println(w); } } } 枚举惯用办法 intcompareTo办法 Stringname返回枚举实例名称 intordinal返回枚举值在枚举中索引 StringtoString返回枚举实例名称比name更惯用 publicstaticvalueOf 代码如下: publicclassEnumTest{ publicstaticvoidmain(Stringargs){ Weekday=Week.FRI; System.out.println(day);//FRI System.out.println(day.name);//FRI System.out.println(day.ordinal);//4 System.out.println(Week.valueOf("SUN").toLocaleString);//星期日 System.out.println(Week.values.length);//7获取枚举长度 } } 枚举构造函数 代码如下: publicenumGender{ MALE("男"),FEMALE("女"); privateStringname; privateGender(Stringname){ this.name=name; } publicStringgetName{ returnthis.name; } publicStringtoString{ Stringname=null; switch(this){ caseMALE: name="男"; break; caseFEMALE: name="女"; break; } returnname; } } 枚举综合应用示例:交通灯 代码如下: publicenumLamp{ /*每个枚举元素各表达一种方向控制灯*/ S2N("N2S","S2W",false),S2W("N2E","E2W",false),E2W("W2E","E2S",false),E2S("W2N","S2N",false), /*下面元素表达与上面元素相反方向灯,它们“相反方向灯”和“下一种灯”应忽视不计!*/ N2S(null,null,false),N2E(null,null,false),W2E(null,null,false),W2N(null,null,false), /*由南向东和由西向北等右拐弯灯不受红绿灯控制,因此,可以假想它们总是绿灯*/ S2E(null,null,true),E2N(null,null,true),N2W(null,null,true),W2S(null,null,true); privateLamp(Stringopposite,Stringnext,booleanlighted){ this.opposite=opposite; this.next=next; this.lighted=lighted; } /*当前灯与否为绿*/ privatebooleanlighted; /*与当前灯同步为绿相应方向*/ privateStringopposite; /*当前灯变红时下一种变绿灯*/ privateStringnext; publicbooleanisLighted{ returnlighted; } /***某个灯变绿时,它相应方向灯也要变绿*/ publicvoidlight{ this.lighted=true; if(opposite!=null){ Lamp.valueOf(opposite).light; } System.out.println(name+"lampisgreen,下面总共应当有6个方向能看到汽车穿过!"); } /***某个灯变红时,相应方向灯也要变红,并且下一种方向灯要变绿*@return下一种要变绿灯*/ publicLampblackOut{ this.lighted=false; if(opposite!=null){ Lamp.valueOf(opposite).blackOut; } LampnextLamp=null; if(next!=null){ nextLamp=Lamp.valueOf(next); System.out.println("绿灯从"+name+"-------->切换为"+next); nextLamp.light; } returnnextLamp; } }
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 通信科技 > 开发语言

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服