前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Java中的枚举Enum

Java中的枚举Enum

作者头像
卡尔曼和玻尔兹曼谁曼
发布2019-01-25 15:28:29
1K0
发布2019-01-25 15:28:29
举报

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

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

代码语言:javascript
复制
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();
}

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

代码语言:javascript
复制
public enum Date {
	Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday;
}

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

代码语言:javascript
复制
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;
	}
}

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

测试代码如下:

代码语言:javascript
复制
public class EnumDemo {
	public static void main(String[] args) {
		System.out.println(Date.Sunday);
		System.out.println(Date.Sunday.getValue());
	}
}

程序运行结果:

代码语言:javascript
复制
Sunday
星期天

关于Java中枚举的总结:

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

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

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

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2014年03月11日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档