Java 枚举(enum)

枚举表示的是一组常量。
  1. 实现

(1)Enum关键字

JDK5的新特性。和类相同,可以有构造函数方法,但构造函数要定义为private。

//无参构造
enum Color1 {
    RED, GREED, BLUE;

    public static void main(String[] args) {
        Color1 color = Color1.RED;
        System.out.println(color);
    }
}

//有参构造
enum Color2 {
    RED(0, "红色"),
    GREED(1, "绿色"), 
    BLUE(2, "蓝色"),
    ;

    private int code;
    private String name;

    private Color2(int code, String name) {
        this.code = code;
        this.name = name;
    }

    public String getCode() {
        return this.code;
    }

    public String getName() {
        return this.name;
    }

    public static void main(String[] args) {
        Color2 color = Color2.RED;
        System.out.println(color.getName());
    }
}
Enum定义的枚举类型默认继承于java.lang.Enum,并实现了java.lang.Serializable和java.lang.Comparable接口。

(2)枚举类

//无参构造
class Color_1 {
    public static final Color_1 RED = new Color_1();
    public static final Color_1 GREEN = new Color_1();
    public static final Color_1 BLUE = new Color_1();

    private Color_1() {
    }

    public static void main(String[] args) {
        Color_1 color = Color_1.RED;
        System.out.println(color);
    }
}

//有参构造
class Color_2 {
    public static final Color_2 RED = new Color_2("红色");
    public static final Color_2 GREEN = new Color_2("绿色");
    public static final Color_2 BLUE = new Color_2("蓝色");

    private String name;

    private Color_2(String name) {
        this.name = name;
    }

    public String getName() {
        return this.name;
    }

    public static void main(String[] args) {
        Color_2 color = Color_2.RED;
        System.out.println(color.getName());
    }
}

  1. 方法

public class EnumTest {
    public static void main(String[] args) {
        Color1[] arry = Color1.values();   //返回枚举类中的所有值

        Color1 color1 = Color1.GREED;
        int num = color1.ordinal();       //返回枚举常量的索引,其索引从0开始

        Color1 color2 = Color1.valueOf("RED");
        //根据字符串返回对应的枚举常量,不存在则报错IllegalArgumentException
    }
}

注:
对于由Enum定义的枚举,当执行Color1 color = Color1.RED时,会对改枚举类中的所有枚举常量各执行一次构造函数。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值