首页
学习
活动
专区
圈层
工具
发布

Java中的枚举Enum

在Java没有提供枚举的时候,比如我们要使用一个表示周几的枚举值怎么办? Java中是这样解决的:定义一个私有的构造函数,然后在类中new出对象来。...public enum Date { Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday; } 如果我要定义这样一个枚举类,让它能够返回对应日期的中文怎么办...中枚举的总结: 1.枚举也是一种特殊形式的Java类 2.枚举类中声明的每一个枚举值代表枚举类的一个实例对象 3.与Java中普通类一样,在声明枚举类时,也可以声明属性、方法构造函数,但枚举类的构造函数必须为私有的...4.枚举类也可以实现接口,或继承抽象类 5.若枚举只有一个枚举值,则可以当做单态设计模式使用 最后需要明确的是: Java中声明枚举类,均是java.lang.Enum类的子类,它继承了Enum...具体方法可以参考Java API文档,里面提供了一些有用的方法。

1.4K20

Java enum的用法详解

完整代码示例如下: package com.merryyou.enmu; import java.util.EnumMap; import java.util.EnumSet; /** * Created...(java是单继承,它已经继承了Enum),可以添加其他方法,覆盖它本身的方法 switch()参数可以使用enum了 values()方法是编译器插入到enum定义中的static方法,所以,当你将enum...enum中的元素,在一个接口的内部,创建实现该接口的枚举,以此将元素进行分组。...enum要求其成员都是唯一的,但是enum中不能删除添加元素。 EnumMap的key是enum,value是任何其他Object对象。 enum允许程序员为eunm实例编写方法。...所以可以为每个enum实例赋予各自不同的行为。 使用enum的职责链(Chain of Responsibility) .这个关系到设计模式的职责链模式。以多种不同的方法来解决一个问题。

90150
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    java枚举类型enum的使用

    最近跟同事讨论问题的时候,突然同事提到我们为什么java 中定义的常量值不采用enmu 枚举类型,而采用public final static 类型来定义呢?...Java 中的枚举类型采用关键字enum 来定义,从jdk1.5才有的新类型,所有的枚举类型都是继承自Enum 类型。...: package com.csdn.myEnum; import java.util.EnumMap; import java.util.EnumSet; public class LightTest...可以创建一个enum 类,把它看做一个普通的类。除了它不能继承其他类了。(java 是单继承,它已经继承了Enum), 可以添加其他方法,覆盖它本身的方法 3....enum 要求其成员都是唯一的,但是enum 中不能删除添加元素。 7. EnumMap 的key 是enum ,value 是任何其他Object 对象。 8.

    1.4K100

    JAVA枚举类型(Enum)的使用

    这个时候就体现出枚举类的作用了,java中枚举类型就是针对这样的场景需求所设计的。.../** * 枚举类的后缀建议为Enum,枚举类型的实例对象建议全大写(这样做符合JAVA的规范) */ public enum SeasonEnum{ SPRING,SUMMER,AUTUMN...public enum SeasonEnum { //枚举类的实例对象必须在最前面先定义,而且必须每个实例对象都必须维护上chinese成员变量 SPRING("春天"),SUMMER(...其实枚举类型可以看做我们平时新建.java差不多,只是枚举类限制了此类的实例对象。当然,枚举类可以有自己的成员变量和方法。...如果想看它更多用法请参考下面的链接 更多用法请参考这篇Java 枚举(enum) 详解7种常见的用法_请叫我大师兄_的博客-CSDN博客_java 枚举的定义与用法 版权声明:本文内容由互联网用户自发贡献

    1.6K20

    深入分析Java的enum

    创建的枚举类型默认是java.lang.enum(抽象类)的子类。 每个枚举项的类型都为public static final 。...因为Java的单继承机制,emum不能再用extends继承其他的类。 我们可以使用javap命令进行反编译验证。 ? 既然enum是一个类,那么它就可以像一般的类一样拥有自己的属性与方法。...但Java要求必须先定义enum实例。 否则会编译错误。...(java是单继承,它已经继承了Enum),可以添加其他方法,覆盖它本身的方法 switch()参数可以使用enum values()方法是编译器插入到enum定义中的static方法,所以,当你将enum...enum允许程序员为eunm实例编写方法。所以可以为每个enum实例赋予各自不同的行为。 【java.util.EnumSet和java.util.EnumMap】

    1.4K110

    深入分析 Java 的枚举 enum

    当然上面的那个类是无法被编译的,因为 Java 编译器限制了我们显式的继承自 java.Lang.Enum 类, 报错 "The type Gender may not subclass Enum explicitly...", 虽然 java.Lang.Enum 声明的是 ?...这样看来枚举类其实用了多例模式,枚举类的实例是有范围限制的 它同样像我们的传统常量类,只是它的元素是有限的枚举类本身的实例 它继承自 java.lang.Enum, 所以可以直接调用 java.lang.Enum...(java是单继承,它已经继承了Enum),可以添加其他方法,覆盖它本身的方法 switch()参数可以使用enum values()方法是编译器插入到enum定义中的static方法,所以,当你将enum...enum允许程序员为eunm实例编写方法。所以可以为每个enum实例赋予各自不同的行为。 【java.util.EnumSet和java.util.EnumMap】

    2.1K30

    Java——枚举:优雅而干净的enum

    《Java编程思想》中有这么一句话:“有时恰恰因为它,你才能够‘优雅而干净’地解决问题”——这句话说的是谁呢?就是本篇的主角——枚举(Enum)——大家鼓掌了。...这段代码实际上调用了3次Enum(String name, int ordinal)(ordinal单词的意思为顺序),也就是: new Enum("WANGER", 0); new Enum...三、枚举实现单例 《Effective Java》一书中对使用枚举实现单例的方式推崇备至: 使用枚举实现单例的方法虽然还没有广泛采用,但是单元素的枚举类型已经成为实现Singleton的最佳方法。...因为Java虚拟机在加载枚举类的时候,会使用ClassLoader的loadClass方法,这个方法使用了同步代码块来保证线程安全。 避免反序列化破坏单例。因为枚举的反序列化并不通过反射实现。...读者福利: 分享免费学习资料 针对于Java程序员,我这边准备免费的Java架构学习资料(里面有高可用、高并发、高性能及分布式、Jvm性能调优、MyBatis,Netty,Redis,Kafka,Mysql

    3.4K00

    Java枚举(enum)常用的用法总结

    Java枚举(enum)七种常见的用法汇总如下: JDK1.5引入了新的类型——枚举。在 Java 中它虽然算个“小”功能,却给我的开发带来了“大”方便。...概念 enum 的全称为 enumeration, 是 JDK 1.5 中引入的新特性。 在Java中,被 enum 关键字修饰的类型就是枚举类型。...创建enum时,编译器会为你生成一个相关的类,这个类继承自 java.lang.Enum。...在C/C++语言中的enum,可以用赋值符号=显示的为枚举常量赋值;但是 ,很遗憾,Java 语法中却不允许使用赋值符号 = 为枚举常量赋值。...因为 enum 实际上都继承自 java.lang.Enum 类,而 Java 不支持多重继承,所以 enum 不能再继承其他类,当然也不能继承另一个 enum。

    55210

    用上Java的Enum枚举 玩一玩课堂点到

    Java是从JDK1.5开始,引入了这种新的类型——枚举(enum)。 其实枚举不是Java所特有的功能,在C++等其他编程语言中也一样存在。...但和其余编程语言相比,Java的枚举——enum更加强大,因为Java提供的枚举是完整的类,也就是说,我们可以随意添加成员变量和成员方法。...当然,Java的enum枚举也支持相互比较,也可以被序列化。 说了那么多,让我们先来了解一下Java的枚举。...---- 三、枚举实际应用 —— 课堂点到 接下来是一个实际的应用,那就是课堂随机点到的小游戏,利用Java的枚举类,20行代码即可实现 首先创建一个枚举类——User,放入点到的姓名范围 enum User...当然 Java 的 Enum 应用远不止这个,还有很多等着我们去学习。

    18730
    领券