三分钟学会java枚举类

什么是枚举 what

枚举类enum是jdk1.5引入的,全称enumeration,和class、interface的地位一样,存在java.lang包中

什么时候使用枚举 when

当变量的值在一个固定的范围内变化时,建议优先使用枚举

为什么使用枚举 why

正常我们声明常量时

public static final String SEASON_SPRING = "春天";
public static final String SEASON_SUMMER = "夏天";
public static final String SEASON_AUTUMN = "秋天";
public static final String SEASON_WINTER = "冬天";

使用枚举时

public enum Season{
	SPRING,SUMMER,AUTUMN,WINTER
}

使用枚举更加直观,更加安全,枚举类为每个实例自动添加了public static final修饰符。

如何使用枚举how

最简单的枚举就像上面代码那样,在需要使用的地方就可以直接引用了,你没听错,直接Season.SPRING就能拿到这个实例,不用new。

其次,我们还可以为每个实例增加属性值,注意实例名称必须写在第一行

public enum Season{
	SPRING("春天"),
	SUMMER("夏天"),
	AUTUMN("秋天"),
	WINTER("冬天");

	private final String name;

	Season(String name){
		this.name = name;
	}

	public String getName() {
        return name;
    }
}

再者,我们还可以在枚举类中声明接口,每个实例都需要重写该接口

public enum Season{
    SPRING("春天") {
        @Override
        public String hello(String str) {
            return "春天" + str;
        }
    },
    SUMMER("夏天") {
        @Override
        public String hello(String str) {
            return "夏天" + str;
        }
    },
    AUTUMN("秋天") {
        @Override
        public String hello(String str) {
            return "秋天" + str;
        }
    },
    WINTER("冬天") {
        @Override
        public String hello(String str) {
            return "冬天" + str;
        }
    };

    abstract String hello(String str);

    private final String name;

    Season(String name) {
        this.name = name;
    }

    public String getName() {
        return name;
    }
}

此时,Season作为一个接口,每个实例则是Season的匿名内部类
在这里插入图片描述

当然,枚举类也可以在switch中使用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值