Java中的枚举Enum

在Java没有提供枚举的时候,比如我们要使用一个表示周几的枚举值怎么办?

Java中是这样解决的:定义一个私有的构造函数,然后在类中new出对象来。

public class Date {
	private Date() {
		
	}
	private static final Date Sunday = new Date();
	private static final Date Monday = new Date();
	private static final Date Tuesday = new Date();
	private static final Date Wednesday = new Date();
	private static final Date Thursday = new Date();
	private static final Date Friday = new Date();
	private static final Date  Saturday= new Date();
}

有了枚举,一切都变得简单。

public enum Date {
	Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday;
}

如果我要定义这样一个枚举类,让它能够返回对应日期的中文怎么办?我们可以定义枚举中的成员函数。

public enum Date {
	Sunday("星期天"), Monday("星期天"), Tuesday("星期天"), Wednesday("星期天"), Thursday(
			"星期天"), Friday("星期天"), Saturday("星期天");

	private String value;

	private Date(String value) {
		this.value = value;
	}

	public String getValue() {
		return value;
	}
}

注意:构造函数一定要私有!

测试代码如下:

public class EnumDemo {
	public static void main(String[] args) {
		System.out.println(Date.Sunday);
		System.out.println(Date.Sunday.getValue());
	}
}

程序运行结果:

Sunday
星期天

关于Java中枚举的总结:

1.枚举也是一种特殊形式的Java类
2.枚举类中声明的每一个枚举值代表枚举类的一个实例对象
3.与Java中普通类一样,在声明枚举类时,也可以声明属性、方法构造函数,但枚举类的构造函数必须为私有的
4.枚举类也可以实现接口,或继承抽象类
5.若枚举只有一个枚举值,则可以当做单态设计模式使用

最后需要明确的是:
Java中声明枚举类,均是java.lang.Enum类的子类,它继承了Enum类的所有方法。

具体方法可以参考Java API文档,里面提供了一些有用的方法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值