关闭

枚举enum

标签: enum
147人阅读 评论(0) 收藏 举报
分类:

1.干嘛的

enum,是指一组由固定的常量组成合法值得类型。用于常量定义,与public static final 用来修饰常量类似。(jdk1.5之后)

传统用法

public class State{
    public static final MGS="this is mgs";
    public static final TEXT="this is text";
}

枚举定义

public enum MyEnum{
    MGS("this is mgs"),TEXT("this is text");
    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"),
    TEXT(2,"this is text");
    public void setD(String d) {
        this.d = d;
    }

    public int getI() {
        return i;
    }

    public void setI(int i) {
        this.i = i;
    } 

    private String d;
    private int i;
    public String getD() {
        return d;
    }

    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());
    }
}

//此时onefour的默认值依次是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语句。

1
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:910次
    • 积分:78
    • 等级:
    • 排名:千里之外
    • 原创:7篇
    • 转载:0篇
    • 译文:0篇
    • 评论:0条
    文章分类