浅谈一下Java枚举类型

背景

原来我们定义常量值是用public final static类型来定义,而jdk1.5之后才有的这个枚举类型,采用关键字enum来定义

枚举类型

它是一种特殊的数据类型,因为它既是一种类类型但又比类类型多了写特殊的约束

在没有枚举类型时定义常量方式
public class Day{
	public static final int RED=1;
	public static final int GREEN=2;
	public static final int YELLOW=3;
}
枚举类型定义常量方法

javaEnum简单的用法一般用于代表一组常用常量,可用来代表一类相同类型的常量值,枚举类型的简单定义方法如下:

//首先枚举是一个特殊的class
//这个class相当于final static修饰,不能被继承
//所有的枚举都继承自java.lang.Enum类,由于java不支持多继承,所以枚举对象不能再继承其他类
public enum Day{
	//相当于RED=new ColorEnum(1),按序号来
	RED,GREEN,YELLOW;
}

枚举类型提供了构造函数,我们可以通过构造函数和覆写toString方法来实现具体的值。改造后的代码如下:

public enum Light{
	//利用构造函数传参
	RED(1),GREEN(3),YELLOW(2);
	//定义私有变量
	private int num;
	//构造函数,枚举类型只能为私有
	private Light(int num){
		this.num=num;
	}
	//覆盖方法:只能用toString方法来输出枚举变量值
	@Override
	public String toString(){
		return String.valueOf(this.num);
	}
}
向枚举中添加新方法

如果添加自定义的方法,那么必须再enum实例序列的最后添加一个分号。

public enum SeasonEnum{
	//每一个枚举变量都是枚举类SeasonEnum的实例化
	//SeasonEnum.SPRING获得的对象相当于new SeasonEnum("春","春天");
	SPRING("春","春天"),SUMMER("夏","夏天"),AUTUMN("秋","秋天"),WINTER("冬","冬天");
	//构造方法,赋值给成员变量
	private SeasonEnum(String name,String value){
		this.name=name;
		this.value=value;
	}
	//添加成员变量
	private String name;
	private String value;
	//get,set方法
	public String getName(){
		return name;
	}
	public void setName(String name) {
        this.name = name;
    }
    public String getValue() {
        return value;
    }
    public void setValue(String value) {
        this.value = value;
   }
}
具体使用
public class SeasonDemo{
	public static void main(String[] args){
		//直接引用,通过Enum类型名直接引用该常量
		Season season=Season.SPRING;
	}
}
//定义枚举类型
enum Season{
	SPRING,SUMMER,AUTUMN,WINTER;
}

直接引用枚举的值即可

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值