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文档,里面提供了一些有用的方法。

所有的失败,与失去自己的失败比起来,更是微不足道

Java中的枚举Enum

相关文章:

你感兴趣的文章:

标签云: