什么是枚举?枚举是一种特殊的数据类型,用于定义具有固定个数的常量集。它可以帮助我们更好地管理常量,使代码更易于阅读和维护。Java枚举是一种高效、可读性强的常量管理方式,它可以使代码更易于维护和扩展。...使用Java枚举可以帮助我们有效地组织常量,并将其用于多种场景,提高代码的易用性和可重用性。如何使用Java枚举?...在Java中,定义枚举使用enum关键字,其基本语法结构如下:其中,EnumName表示枚举类型的名称,CONSTANT1、CONSTANT2、……、CONSTANTN表示枚举类型中的常量值。...如何使用Java枚举中的常量值?...在Java枚举中,我们可以为每个常量值添加方法,以进一步组织和管理常量。
枚举 类比单例模式,是一个特殊的类,可以实现接口。...但不能继承,不能用new实例化,内部提供有限数量的实例: package Note.enumDemo; interface Poem { void poem(); } // 枚举类型可以实现接口
:MON 枚举位置:0 枚举类型:class com.tea.modules.java8.enums.WeekEnum 当前枚举名称:TUE 枚举位置:1 枚举类型:class com.tea.modules.java8...当前枚举名称:SAT 枚举位置:5 枚举类型:class com.tea.modules.java8.enums.WeekEnum 当前枚举名称:SUN 枚举位置:6 枚举类型:class com.tea.modules.java8...这个可以从反编译的文件中查看: 反编译 可以通过接口来让枚举实现一些通用的方法 定义一个接口,声明打印名字的能力 package com.tea.modules.java8.enums; /** *...com.tea.modules.java8.enums * 枚举接口 * @author jaymin * @since 2021/6/17 */ public interface EnumInfoService...{ /** * 打印枚举的名字 */ void printName(); } 枚举类实现接口 package com.tea.modules.java8.enums
枚举 注意:枚举是单例的,单例要保证私有化构造器。 1....values() 方法:返回所有值 valueOf() 方法:返回指定对象的值(要求传入的形参name是枚举类对象的名字) 否则,报 java.lang.IllegalArgumentException...) // 否则,报 java.lang.IllegalArgumentException 异常 String str = "SPRING"; Season...枚举类实现接口 可以让不同的枚举类的对象调用被重写的抽象方法,执行的效果不同。...) // 否则,报 java.lang.IllegalArgumentException 异常 String str = "WINTER"; Season
|-- 取得枚举的索引: public final int ordinal() |-- 取得枚举的名字: public final String name() |-- 枚举类之中还有一个...for ( Color c : Color.values() ) { System.out.println(c.toString()) ; } } } 枚举实现接口...: interface Message{ // 定义接口类 public String getTitle() ; } enum Color implements Message { //...Color枚举类实现接口 RED("红色"),BLU("绿色"),GREEN("黄色"); //枚举对象定义在枚举类中的首行 private String title ; // 枚举类中的属性...public String toString() { return this.title; } public String getTitle() { // 覆写接口类方法
参考链接: 使用Java枚举 C 语言中可以这样来定义枚举 enum color { RED=0, GREEN, BLUE, YELLOW } col; 关键字 enum 定义枚举,...在定义枚举的同时,声明该枚举变量 col. ...Java 语言中定义枚举也是使用关键字 enum public enum Color { RED, GREEN, BLUE, YELLOW; } 上述定义了一个枚举类型 Color(可以说是类...其实,枚举的成员就是枚举对象,只不过他们是静态常量而已。 ...那么,使用 Java 的不同类来模拟一下枚举,大概是这个样子 package mark.demo; import java.util.ArrayList; import java.util.List;
Java 枚举 枚举 enum 什么是枚举类: Java 枚举是一个特殊的类,一般表示一组常量 比如: 一年的 4 个季节,一个年的 12 个月份,一个星期的 7 天,方向有东南西北等… 类似这种当一个变量有几种固定可能的取值时..., 可以将它定义为枚举类型 出现: Java1.5 之前是没有 枚举 和 注解 的....那时候一般用接口常量来替代 而使用 Java 枚举类型 enum 可以更贴近地表示这种常量. 还可以配合 Switch使用… 枚举类的实现: JDK1.5 之前需要自定义枚举类....实现类 enum 类继承了 java.lang.enum类 Java单根性所以不能在继承, 但Java 可以 多实现 eunm 类 还可以 实现接口...达到扩展的方式 实现方式: 正常实现...*/ interface Info{ void show(); } 枚举集合 在 Java 语言中和枚举类相关的,还有两个枚举集合类 java.util.EnumSet 和 java.util.EnumMap
---- 特点 枚举类的构造器只能是私有的。 enum、class、interface的地位一样。 使用enum定义的枚举类默认继承了java.lang.Enum。 不可被继承。
有用常量类的、有用接口的、有用枚举的,因此本文针对于常量的管理做一些讨论 2、栗子 第一种使用接口: public interface Constants{ int AUDIT_STATUS_PASS...因为我在阅读《Effective Java》这本书中提到过: 如果某个实现了常量接口的类被修改不再需要常量了,也会因为序列化兼容原因不得不保持该实现,而且非final类实现常量接口会导致所有子类被污染...当然,刚才说了不建议把一般的常量放在接口里,所以我们可以放在常量类了,但建议常量类是final的。 什么时候使用枚举呢?其实建议使用枚举。...《Effective Java》中也是推荐使用枚举代替int常量的。...枚举当然是首选,另如果不用枚举,在《Effective Java》一书中,作者建议使用一般类加私有构造方法的方式,至于为什么不用接口,那就要上升到语言哲学问题了(可参考上面通俗易懂的话)。
Java:枚举类型----每博一文案师父说:人活一世,每个人都有他的特别,每个人都值得被温柔相待。...JDK 5.0 enum 定义枚举类在 Java 编程语言中,基于 JDK5.0 的前提下,您可以使用 enum 关键字定义枚举类型。...和普通 Java 类一样,枚举类可以实现一个或多个接口。若每个枚举值在调用实现的接口方法呈现相同的行为方式,则只要统一实现该方法即可。...若需要每个枚举值在调用实现的接口方法呈现出不同的行为方式,,则可以让每个枚举值分别来实现该方法。...举例: 这里我们定义一个 inof 接口,其中定义一个 show() 抽象方法, 再定义一个 enum 枚举类,实现该接口,并重写其中的 show()重写方法。
前言 枚举(enum)是 Java 语言的关键字之一,和 class 关键字一样,我们可以通过 enum 来定义一个枚举类,并在这个枚举类里面创建相关的枚举常量。...这篇文章里我们来看一下枚举在 Java 字节码层面是怎么表示的。...枚举类 我们来深入看一下 Java 编译器是怎么处理枚举的:在控制台上键入 javap -c TestEnum.class(类路径需要换成你自己的编译得到的类路径),即反编译查看 TestEnum.class...同时这个类实现了 Comparable 接口,提供了两个方法 name() 和 oridinal() ,这样的话我们就知道文章开头中说到的那几个方法是哪里来的了:就是父类提供的。...好了,这篇文章就到这里了,相信到了这里你对 Java 枚举已经有了一个的详细的理解。如果觉得文章有什么不正确的地方,请多多指点,如果觉得本篇文章对你有帮助,请不要吝啬你的赞。 谢谢观看。。。
enum 枚举类可以实现一个或多个接口,使用enum定义的枚举类默认继承了java. lang.Enum类,而不是继承Object类,因此枚举类不能显式继承其他父类。...使用enum定义非抽象的枚举类时默认会使用final修饰,因此枚举类不能派生子类。...枚举类的构造方法只能使用private访问修饰符,如果省略,则默认使用private修饰;如果强制指定访问修饰符,则只能指定为private。...枚举类的所有实例必须在枚举类的类体第一行显式列出,否则该枚举类永远不能产生实例。列出的枚举实例默认使用public static final进行修饰。
Java 枚举是一个特殊的类,一般表示一组常量,比如一年的 4 个季节,一个年的 12 个月份,一个星期的 7 天,方向有东南西北等,订单的状态。...Java 枚举类使用 enum 关键字来定义,各个常量使用逗号 , 来分割。 1.定义一个枚举类。...java.lang.Enum 类,并实现了 java.lang.Seriablizable 和 java.lang.Comparable 两个接口。...values(), ordinal() 和 valueOf() 方法位于 java.lang.Enum 类中: values() 返回枚举类中所有的值。...枚举既可以包含具体方法,也可以包含抽象方法。 如果枚举类具有抽象方法,则枚举类的每个实例都必须实现它。 枚举类中的抽象方法实现,需要枚举类中的每个对象都对其进行实现。
枚举的简单使用 在java中,我们可以使用enum关键字来定义枚举: public enum Color { RED, GREEN, BLUE; } 就像上面一样,我们定义了一个名为Color...虽然Java提供枚举类的定义,但是实际上他并不是Java中一个新的对象类型,我们通过对Color枚举类进行反编译,得到如下的反编译结果: $ javap Color.class // 反编译结果 Compiled...); static {}; } 我们可以看到,枚举类实际上在编译的过程中,被编译器进行调整,它并不是一个新的类型,本质上依然是一个类(Color),这个类继承了java.lang.Enum,而对于每一个枚举常量...同时注意,编译器会为我们添加两个新的static方法:values() 和 valueOf(java.lang.String),其实分别作用是返回枚举类中定义的所有的枚举常量,以及根据枚举名来获取枚举常量...当然,由于每一个枚举常量实际上是实现了java.lang.Enum的枚举类的一个静态实例对象,而这个过程是编译器为我们进行的,所以,自然,我们可以在枚举类中定义任何的方法、变量,以及构造函数的定义: public
public enum ConsultTimeEnum { TODAY("本日"), THIS_WEEK("本周"), BEF...
枚举类简介: Java5新增了一个enum关键字(它与class、interface关键字的地位相同),用以定义枚举类。...枚举类入门: 枚举类定义: package com.alibaba.oop; //定义了一个枚举类, public enum EnumTest { //在第一行列出4个枚举实例 SPRING,...: 1、枚举类可以实现一个或多个接口,使用enum定义的枚举类默认继承了 java. lang Enum类,而不是默认继承 Object类,因此枚举类不能显式继承其他父类。...其中 java. lang Enum类实现了java. lang Serializable和 java. lang. Comparable两个接口。...2、使用enum定义、非抽象的枚举类默认会使用 final修饰,因此枚举类不能派生子类。
一、 枚举类的说明 枚举类的理解:类的对象只有有限个,确定的。 当需要定义一组常量时,强烈建议使用枚举类 如果枚举类只一个对象,则可以作为单例模式的实现方式。...二、如何定义枚举类 ① 自定义枚举类 class Season{ // 1.声明Season对象的属性:private final修饰 private final String seasonName...// 使用enum关键枚举类 enum Season1{ // 1.提供当前枚举类的对象,多个对象之间用“,”隔开,末尾对象";"结束 SPRING("春天","春暖花开"),...,枚举类常用方法:(继承于 java.lang.Enum 类) value() 返回所有的枚举类对象的构成的数组 valueOf(String objName):返回枚举类中对象名是 objName 的对象...interface Info{ void show(); } // 使用enum关键字枚举类 enum Season2 implements Info{ //1.提供当前枚举类的对象,
当需要实现一个对象时,可以使用接口来定义。...interface : 接口; 该类型需要通过interface关键词来实现 enum :枚举类型; 该类型需要通过enum关键词来实现 void :空类型; 该类型规定函数返回值,代表无返回值...使用枚举我们可以定义一些带名字的常量,当枚举作为类型时,表示该属性只能为枚举中的某一个成员 1.字符串枚举 enum SEX{ man = '男', woman = '女', unknown...枚举类型本身变成了每个枚举成员的联合,它可以知道枚举里的值的集合 enum Direction { Up, Down, Left, Right } let...(interface) 接口的作用是对值所具有的结构进行类型检查,为这些结构定义规定,让你的代码按照规定去执行。
(String objName) 使用enum关键字定义的枚举类实现接口的 情况一:实现接口,在enum类中实现抽象方法 情况二:让枚举类的对象分别实现接口中的抽象方法 枚举类的使用 枚举类的理解:类的对象只有有限个...使用 enum 定义的枚举类默认继承了 java.lang.Enum类,因此不能再继承其他类 枚举类的构造器只能使用 private 权限修饰符 枚举类的所有实例必须在枚举类中显式列出(, 用于分隔...// Season1 winter = Season1.valueOf("WINTER1"); System.out.println(winter); 使用enum关键字定义的枚举类实现接口的情况...} @Override public void show() { System.out.println("这是一个季节"); } } 情况二:让枚举类的对象分别实现接口中的抽象方法...} @Override public void show() { System.out.println("这是一个季节"); } } 可以对每一个枚举类的对象实现该接口
枚举例子 2. 接口的实现 3. 枚举中定义抽象方法 enum 定义了枚举类型,其继承于 Enum 枚举类 1....枚举例子 import java.util.EnumMap; import java.util.EnumSet; import java.util.Iterator; import java.util.Map...} public void setName(String name){ this.name = name; } Color (String name){ // 枚举的构造不能为...接口的实现 每个元素都要实现 interface Info{ public String getColor(); } enum Color implements Info{ RED{...枚举中定义抽象方法 每个元素都要实现抽象方法 enum Color { RED{ public String getColor(){ return "红色
领取专属 10元无门槛券
手把手带您无忧上云