一文秒懂Java enum常见的用法讲解
简介
枚举是Java1.5引入的新特性,通过关键字enum来定义枚举类。枚举类是一种特殊类,它和普通类一样可以使用构造器、定义成员变量和方法,也能实现一个或多个接口,但枚举类不能继承其他类.
一,常量定义
publicenumWeekDay{
SUN,MON,TUE,WED,THT,FRI,SAT
}
二,swich
publicenumWeekDay{
SUN,MON,TUE,WED,THT,FRI,SAT
}
publicclassSelectDay{
WeekDayweekday=WeekDay.SUN;
publicvoidselect(){
switch(weekday){
caseSUN:
weekday=WeekDay.SUN;
break;
...
}
}
}
三,向枚举添加新方法
publicenumColor{
RED("红色",1),GREEN("绿色",2),BLANK("白色",3),YELLO("黄色",4);
//成员变量
privateStringname;
privateintindex;
//构造方法
privateColor(Stringname,intindex){
this.name=name;
this.index=index;
}
//普通方法
publicstaticStringgetName(intindex){
for(Colorc:Color.values()){
if(c.getIndex()==index){
returnc.name;
}
}
returnnull;
}
//getset方法
publicStringgetName(){
returnname;
}
publicvoidsetName(Stringname){
this.name=name;
}
publicintgetIndex(){
returnindex;
}
publicvoidsetIndex(intindex){
this.index=index;
}
}
四,覆盖枚举方法
publicenumColor{
RED("红色",1),GREEN("绿色",2),BLANK("白色",3),YELLO("黄色",4);
//成员变量
privateStringname;privateintindex;
//构造方法
privateColor(Stringname,intindex){
this.name=name;this.index=index;
}
//覆盖方法
@Override
publicStringtoString(){
returnthis.index+"_"+this.name;
}
}
五,实现接口
publicinterfaceBehaviour{
voidprint();
StringgetInfo();
}
publicenumColorimplementsBehaviour{
RED("红色",1),GREEN("绿色",2),BLANK("白色",3),YELLO("黄色",4);
//成员变量
privateStringname;
privateintindex;
//构造方法
privateColor(Stringname,intindex){
this.name=name;this.index=index;
}
//接口方法
@Override
publicStringgetInfo(){
returnthis.name;
}
//接口方法
@Override
publicvoidprint(){
System.out.println(this.index+":"+this.name);
}
}
六,接口组织枚举
publicinterfaceFood{
enumCoffeeimplementsFood{
BLACK_COFFEE,DECAF_COFFEE,LATTE,CAPPUCCINO
}
enumDessertimplementsFood{
FRUIT,CAKE,GELATO
}
}
七,枚举集合
publicclassTest{
publicstaticvoidmain(String[]args){
EnumSetweek=EnumSet.noneOf(WeekDay.class);
week.add(WeekDay.MON);
System.out.println("EnumSet中的元素:"+week);
week.remove(WeekDay.MON);
System.out.println("EnumSet中的元素:"+week);
week.addAll(EnumSet.complementOf(week));
System.out.println("EnumSet中的元素:"+week);
week.removeAll(EnumSet.range(WeekDay.FRI,WeekDay.SAT));
System.out.println("EnumSet中的元素:"+week);
}
到此这篇关于一文秒懂Javaenum常见的用法讲解的文章就介绍到这了,更多相关Javaenum用法内容请搜索毛票票以前的文章或继续浏览下面的相关文章希望大家以后多多支持毛票票!