1.干嘛的
enum,是指一组由固定的常量组成合法值得类型。用于常量定义,*与public static final 用来修饰常量类似*。(jdk1.5之后)传统用法
public class State{
public static final MGS="this is mgs";
public static final TEST="this is test";
}
枚举定义
public enum MyEnum{
MGS("this is mgs"),
TEXT("this is test");
private String test;
private MyEnum(String test){
this.test=test;
}
}
2.怎么用
传统:System.out.println(MyEnum.MGS);
枚举:System.out.println(State.MGS);
3.有区别
public enum MyEnum{
MGS(1,"this is mgs"),
TEST(2,"this is text");
private String d;
private int i;
private EnumDemo(int i,String d){
this.d=d;
this.i=i;
}
public static void main(String[] args) {
System.out.println(MyEnum.MGS.getI()+MyEunm.MGS.getD());
}
public void setD(String d) {
this.d = d;
}
public int getI() {
return i;
}
public void setI(int i) {
this.i = i;
}
public String getD() {
return d;
}
}
或简单使用:
//此时one到four的默认值依次是0~3
public enum demo{one,two,three,four}
4.工具类
EnumMap:与Map类似,不同的是EnumMap的key值只能是枚举类型。 1) Map<MyEnum,String> map=new EnumMap<MyEnum, String>(MyEnum.class);
EnumSet:与Set类似,key值只能是枚举类型。
2) EnumSet<MyEnum> set=EnumSet.allOf(MyEnum.class);
5.优缺点
相对来说定义更繁琐,但是更安全、方便、可扩展。可用于switch语句。推荐把常量定义为枚举类型
本人小小女程序员一枚~(目前还没有秃顶
欢迎关注我的公众号:javacainiaozhilu
一起交流、学习、成长
还有海量视频教程免费赠送~