学习
实践
活动
工具
TVP
写文章

Java 枚举

枚举产生之前,都是采用多例设计模式实现。 枚举概念产生后,出现了新的 enum 关键字: 定义枚举: package cn.mldn.utli; enum Color { //定义枚举类 RED,GRE,BLUE; // 表示此处为实例化对象 ,和先前的多例设计code相比较,枚举可以完全简化的替代多例设计模式 枚举关键字 enum定义的枚举类实际上就是继承了 Enum 类的子类:   Enum是一个抽象类;Enum类中定义了两个方法:      |-- 取得枚举的索引: public final int ordinal()     |-- 取得枚举的名字: public final String name()     |-- 枚举类之中还有一个 RED("红色"),BLU("绿色"),GREEN("黄色"); //枚举对象定义在枚举类中的首行 private String title ; // 枚举类中的属性 private

42510

Java 枚举:理解枚举本质

参考链接: 使用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;

34030
  • 广告
    关闭

    热门业务场景教学

    个人网站、项目部署、开发环境、游戏服务器、图床、渲染训练等免费搭建教程,多款云服务器20元起。

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

    Java枚举

    枚举可以做什么 假设我们现在想表达星期,为了避免魔法值的出现,我们可能会写一个常量类: package com.tea.modules.java8.enums; /** * com.tea.modules.java8 枚举类基础用法 定义一个枚举类 Week package com.tea.modules.java8.enums; /** * com.tea.modules.java8.enums
    * :MON 枚举位置:0 枚举类型:class com.tea.modules.java8.enums.WeekEnum 当前枚举名称:TUE 枚举位置:1 枚举类型:class com.tea.modules.java8 枚举类型:class com.tea.modules.java8.enums.WeekEnum 当前枚举名称:FRI 枚举位置:4 枚举类型:class com.tea.modules.java8.enums.WeekEnum 当前枚举名称:SAT 枚举位置:5 枚举类型:class com.tea.modules.java8.enums.WeekEnum 当前枚举名称:SUN 枚举位置:6 枚举类型:class com.tea.modules.java8

    9574

    java 枚举

    枚举 注意:枚举是单例的,单例要保证私有化构造器。 1. values() 方法:返回所有值 valueOf() 方法:返回指定对象的值(要求传入的形参name是枚举类对象的名字) 否则,报 java.lang.IllegalArgumentException ) // 否则,报 java.lang.IllegalArgumentException 异常 String str = "SPRING"; Season 枚举类实现接口 可以让不同的枚举类的对象调用被重写的抽象方法,执行的效果不同。 ) // 否则,报 java.lang.IllegalArgumentException 异常 String str = "WINTER"; Season

    40730

    Java枚举

    枚举 类比单例模式,是一个特殊的类,可以实现接口。 但不能继承,不能用new实例化,内部提供有限数量的实例: package Note.enumDemo; interface Poem { void poem(); } // 枚举类型可以实现接口

    5810

    java枚举

    ---- 特点 枚举类的构造器只能是私有的。 enum、class、interface的地位一样。 使用enum定义的枚举类默认继承了java.lang.Enum。 不可被继承。

    12930

    java 枚举

    enum 枚举类可以实现一个或多个接口,使用enum定义的枚举类默认继承了java. lang.Enum类,而不是继承Object类,因此枚举类不能显式继承其他父类。 使用enum定义非抽象的枚举类时默认会使用final修饰,因此枚举类不能派生子类。 枚举类的构造方法只能使用private访问修饰符,如果省略,则默认使用private修饰;如果强制指定访问修饰符,则只能指定为private。 枚举类的所有实例必须在枚举类的类体第一行显式列出,否则该枚举类永远不能产生实例。列出的枚举实例默认使用public static final进行修饰。

    36620

    详解 Java 枚举

    前言 枚举(enum)是 Java 语言的关键字之一,和 class 关键字一样,我们可以通过 enum 来定义一个枚举类,并在这个枚举类里面创建相关的枚举常量。 这篇文章里我们来看一下枚举Java 字节码层面是怎么表示的。 枚举类 我们来深入看一下 Java 编译器是怎么处理枚举的:在控制台上键入 javap -c TestEnum.class(类路径需要换成你自己的编译得到的类路径),即反编译查看 TestEnum.class java.lang.Enum<enum_.TestEnum> { /* 定义了三个常量,即为我们在定义时书写的三个枚举常量 */ public static final enum_.TestEnum 好了,这篇文章就到这里了,相信到了这里你对 Java 枚举已经有了一个的详细的理解。如果觉得文章有什么不正确的地方,请多多指点,如果觉得本篇文章对你有帮助,请不要吝啬你的赞。 谢谢观看。。。

    58720

    java枚举

    枚举类简介: 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修饰,因此枚举类不能派生子类。

    36110

    java枚举

    一、 枚举类的说明 枚举类的理解:类的对象只有有限个,确定的。 当需要定义一组常量时,强烈建议使用枚举类 如果枚举类只一个对象,则可以作为单例模式的实现方式。 二、如何定义枚举类 ① 自定义枚举类 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.提供当前枚举类的对象,

    13140

    Java ENUM枚举

    1900

    Java enum枚举

    枚举例子 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){ // 枚举的构造不能为 枚举中定义抽象方法 每个元素都要实现抽象方法 enum Color { RED{ public String getColor(){ return "红色

    14130

    Java枚举详解

    Java枚举(enum)详解:Java声明枚举类型、枚举(enum)类、EnumMap 与 EnumSet 声明枚举 枚举类 为枚举添加方法 EnumMap 与 EnumSet EnumMap 在 JDK 1.5 之前没有枚举类型,那时候一般用接口常量来替代。而使用 Java 枚举类型 enum 可以更贴近地表示这种常量。 Java 中的每一个枚举都继承自 java.lang.Enum 类。 Java枚举类型提供了一些内置的方法,同时枚举常量也可以有自己的方法。 ,java.util 中添加了两个新类:EnumMap 和 EnumSet。

    9140

    Java枚举

    Java 枚举是一个特殊的类,一般表示一组常量,比如一年的 4 个季节,一个年的 12 个月份,一个星期的 7 天,方向有东南西北等,订单的状态。 Java 枚举类使用 enum 关键字来定义,各个常量使用逗号 , 来分割。 1.定义一个枚举类。 java.lang.Enum 类,并实现了 java.lang.Seriablizable 和 java.lang.Comparable 两个接口。 values(), ordinal() 和 valueOf() 方法位于 java.lang.Enum 类中: values() 返回枚举类中所有的值。 枚举既可以包含具体方法,也可以包含抽象方法。 如果枚举类具有抽象方法,则枚举类的每个实例都必须实现它。 枚举类中的抽象方法实现,需要枚举类中的每个对象都对其进行实现。

    11710

    java枚举类型enum用法(java定义枚举常量类)

    文章目录 枚举类的使用 如何定义枚举类 方式一:jdk5.0之前,自定义枚举类 方式二:jdk5.0,可以使用enum关键字定义枚举类 Enum类的主要方法 toString() values() valueOf (String objName) 使用enum关键字定义的枚举类实现接口的 情况一:实现接口,在enum类中实现抽象方法 情况二:让枚举类的对象分别实现接口中的抽象方法 枚举类的使用 枚举类的理解:类的对象只有有限个 我们称此类为枚举类 当需要定义一组常量时,强烈建议使用枚举类 如果枚举类中只有一个对象,则可以作为单例模式的实现方式。 如何定义枚举类 方式一:jdk5.0之前,自定义枚举类 //自定义枚举类 class Season{ //1.声明Season对象的属性:private final修饰 private final 使用 enum 定义的枚举类默认继承了 java.lang.Enum类,因此不能再继承其他类 枚举类的构造器只能使用 private 权限修饰符 枚举类的所有实例必须在枚举类中显式列出(, 用于分隔

    61220

    java枚举使用详解

    java中如何更好的使用这些“数据集”呢?因此枚举便派上了用场,以下代码详细介绍了枚举的用法。 package com.ljq.test; /** * 枚举用法详解 * * @author jiqinlin */ public class TestEnum { /** ,用于定义变量,以限制变量的赋值; //赋值时通过“枚举名.值”取得枚举中的值 ColorEnum colorEnum = ColorEnum.blue; ColorEnum枚举中的值有" + ColorEnum.values().length + "个"); //获取枚举的索引位置,默认从0开始 System.out.println java.lang.Comparable接口 System.out.println(ColorEnum.red.compareTo(ColorEnum.green));//-1

    49150

    Java枚举全解析

    enum关键字与class和interface地位相同,其一样有成员变量、方法、可以实现一个或多个接口,也可以有构造器 枚举类与普通类的区别 枚举类的父类是java.lang.Enum类 非抽象枚举类默认使用 final修饰,不能存在子类 枚举类的构造器只能使用private修饰符,默认就是private 枚举类的所有实例必须在枚举类的第一行显式列出,否则这个枚举类永远不能产生实例,列出的实例,系统会自动添加 如果该枚举对象位于指定枚举对象之后,则返回正整数 name():返回此枚举实例的名称 ordinal():返回枚举值在枚举类中的索引值(从0开始) toString():与name方法一致,推荐使用toString 枚举类实现接口,与正常类没有什么区别 package com.em; import java.io.FileDescriptor; import java.io.IOException; import 枚举类里定义抽象方法时不能使用abstract关键字将枚举类定义成抽象类(因为系统自动会添加abastract),但因为枚举类需要显式创建枚举值,而不是作为父类,所以定义每个枚举值时必须为抽象方法提供实现

    43710

    Java枚举类型校验

    break; default: System.out.println("参数异常"); } } } 使用枚举之后 package com.merryyou.enmu; import java.util.HashMap; import java.util.Map; /** * Created on 2016/

    49110

    java枚举类介绍

    枚举 枚举对应英文(enumeration,简写enum)。 枚举是一组常量的集合。 可以这样理解:枚举是一种特殊的类,里面只包含一组有限的特定的对象。 枚举的两种实现方式 自定义类实现枚举 使用enum关键字实现枚举 自定义实现枚举 不需要提供setXxx方法,因为枚举对象值通常为制度。 getDeclaningClass 得到枚举常量所属枚举类型的Class对象。可以用它来判断两个枚举常量是否属于同一个枚举类型 name 得到当前枚举常量的名称。 } } enum实现接口 实现enum关键字后,就不能再继承其他类,因为enum会隐式继承Enum,而java是单继承机制。 String[]args){ Music.CLASSICMUSIC.playing(); } } //使用enum关键字后,就不能在继承其他类了,因为enum会隐式继承Enum,Java

    11630

    Java枚举类型使用

    使用枚举类型,优点是加载速度依赖于应用服务器,缺点是修改比较麻烦,每次加类型都需要发布代码。 对于Java枚举类型的使用,我们可以总结为以下几个方面:整型值,字符串字段和字符串的相关描述,下面我们就讨论如何方便的在这几个类型中相关转换,对于所有的类型转换可以总结如下: int --> Enum String -->Enum Enum-->String Enum-->描述 int -->描述 String -->描述 下面我们对于上面的7种描述来做出对应的转换方法,首先定义一个枚举类型 public enum EnumDemo { fail, success, unknow; } 为了能够保证相关的value和值能够保存下来,我们需要对枚举类型改成如下

    1.6K20

    扫码关注腾讯云开发者

    领取腾讯云代金券