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

Java enum枚举

作者头像
Michael阿明
发布于 2021-09-06 02:07:38
发布于 2021-09-06 02:07:38
80400
代码可运行
举报
运行总次数:0
代码可运行

文章目录

enum 定义了枚举类型,其继承于 Enum 枚举类

1. 枚举例子

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import java.util.EnumMap;
import java.util.EnumSet;
import java.util.Iterator;
import java.util.Map;

class EnumDemo {
    public enum Color{
        RED, GREEN, BLUE
    }
    public static void main(String[] args){
        Color c = Color.RED;
        System.out.println(c);
        c = Color.GREEN;
        System.out.println(c);
        c = Color.BLUE;
        System.out.println(c);
		
		// 可用于 switch 
        switch(c){
            case RED:{
                System.out.println("红色");
                break;
            }
            case GREEN:{
                System.out.println("绿色");
                break;
            }
            case BLUE:{
                System.out.println("蓝色");
                break;
            }
            default:{
                System.out.println("nothing");
            }
        }
		
		// 
        for(Color col : Color.values())
            System.out.println(col.name() + "--->" + col.ordinal());
		// RED--->0
		// GREEN--->1
		// BLUE--->2

        // EnumMap
        EnumMap<Color, String> eMap = new EnumMap<Color, String>(Color.class);
        eMap.put(Color.RED, "红色");
        eMap.put(Color.GREEN, "绿色");
        eMap.put(Color.BLUE, "蓝色");
        for(Map.Entry<Color, String> me : eMap.entrySet()){
            System.out.println(me.getKey() + " : " + me.getValue());
        }
        // RED : 红色
		// GREEN : 绿色
		// BLUE : 蓝色

        // EnumSet
        EnumSet<Color> eSet = EnumSet.allOf(Color.class);//全部内容设置到集合
        Iterator<Color> iter = eSet.iterator();
        while(iter.hasNext()){
            System.out.println(iter.next());
        }
        // RED
		// GREEN
		// BLUE
    }
}
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
enum Color{
    RED("红色"), GREEN("绿色"), BLUE("蓝色");
    private String name;
    public String getName(){
        return name;
    }
    public void setName(String name){
        this.name = name;
    }
    Color (String name){ // 枚举的构造不能为 public
        this.setName(name);
    }
}
class test7{
    public static void main(String[] args) {
        for(Color col : Color.values()) {
            System.out.println(col.name() + "--->" + col.ordinal() + " " + col.getName());
        }
    }
}

输出:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
RED--->0 红色
GREEN--->1 绿色
BLUE--->2 蓝色

2. 接口的实现

  • 每个元素都要实现
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
interface Info{
    public String getColor();
}
enum Color implements Info{
    RED{
        public String getColor(){
            return "红色";
        }
    },
    GREEN{
        public String getColor(){
            return "绿色";
        }
    },
    BLUE{
        public String getColor(){
            return "蓝色";
        }
    };
}
class test7{
    public static void main(String[] args) {
        for(Color col : Color.values()) {
            System.out.println(col.name() + "--->" + col.ordinal() + " " + col.getColor());
        }
    }
}

输出:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
RED--->0 红色
GREEN--->1 绿色
BLUE--->2 蓝色

3. 枚举中定义抽象方法

  • 每个元素都要实现抽象方法
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
enum Color {
    RED{
        public String getColor(){
            return "红色";
        }
    },
    GREEN{
        public String getColor(){
            return "绿色";
        }
    },
    BLUE{
        public String getColor(){
            return "蓝色";
        }
    };
    public abstract String getColor();
}
class test7{
    public static void main(String[] args) {
        for(Color col : Color.values()) {
            System.out.println(col.name() + "--->" + col.ordinal() + " " + col.getColor());
        }
    }
}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021/03/01 ,如有侵权请联系 cloudcommunity@tencent.com 删除

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

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

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

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Java枚举(enum)常用的用法总结
JDK1.5引入了新的类型——枚举。在 Java 中它虽然算个“小”功能,却给我的开发带来了“大”方便。
猫头虎
2024/04/07
4160
Java枚举(enum)常用的用法总结
【小家Java】深入理解Java枚举类型(enum)及7种常见的用法(含EnumMap和EnumSet)
这次当我入职一家新公司的时候,编写代码发现,里面还在大量的使用public static final…这种语句来神马一些状态常量。
YourBatman
2019/09/03
6.7K0
【小家Java】深入理解Java枚举类型(enum)及7种常见的用法(含EnumMap和EnumSet)
深入分析 Java 的枚举 enum
enum全称为enumeration,中文意为枚举,枚举简单的说就是一种数据类型,只不过是这种数据类型只包含自定义的特定数据,它是一组有共同特性的数据的集合。
JavaEdge
2019/03/05
2K0
深入分析Java的enum
一、定义(语法) enum全称为enumeration,中文意为枚举,枚举简单的说就是一种数据类型,只不过是这种数据类型只包含自定义的特定数据,它是一组有共同特性的数据的集合。 创建枚举类型是需要用到enum关键字,如: public enum Color{ RED, GREEN, BLUE, BLACK, PINK, WHITE; } enum的语法看似与class不同,但它实际上就是一个类,经过编译器编译之后得到一个.class文件。 创建的枚举类型默认是java.lang.enum<枚
JavaEdge
2018/05/16
1.3K0
Java——枚举基础应用总结(多例设计模式、Enum类、枚举的实际应用)
以上代码,JDK1.5前编写OK,但是很麻烦,getInstance方法没什么意义,且内部中实例化对象的个数未知。因此,JDK1.5开始提供了enum关键字,其可以实现与多例相同的功能,如下所示:
Winter_world
2020/09/25
1.4K0
Java——枚举基础应用总结(多例设计模式、Enum类、枚举的实际应用)
Java 枚举用法详解
概念 enum 的全称为 enumeration, 是 JDK 1.5 中引入的新特性。 在Java中,被 enum 关键字修饰的类型就是枚举类型。形式如下: enum Color { RED, GR
静默虚空
2018/01/05
2.3K0
Java5 枚举(Enum)
enum的全称为 enumeration, 是 JDK 1.5 中引入的新特性。在Java中,被enum关键字修饰的类型就是枚举类型,此类继承了Enum类,形式如下:
HLee
2021/05/26
1.2K0
Java5 枚举(Enum)
深入理解 Java 枚举
执行 javac ColorEn.java 命令,生成 ColorEn.class 文件。
静默虚空
2019/12/20
9410
深入理解 Java 枚举
Java基础15:深入剖析Java枚举类
本文介绍了枚举类的基本概念,使用方法,以及底层实现原理。帮助你更好地使用枚举类并且理解枚举类的内部实现细节。
程序员黄小斜
2019/04/07
6900
Java枚举类
Java 枚举是一个特殊的类,一般表示一组常量,比如一年的 4 个季节,一个年的 12 个月份,一个星期的 7 天,方向有东南西北等,订单的状态。
joshua317
2021/12/04
1.1K0
Java enum的用法详解「建议收藏」
在JDK1.5 之前,我们定义常量都是: public static fianl…. 。现在好了,有了枚举,可以把相关的常量分组到一个枚举类型里,而且枚举提供了比常量更多的方法。
全栈程序员站长
2022/07/19
6480
Java 中一个你绝对没用过,但是很好用的数据结构
Java 中常规的集合工具,相比大家都熟练于胸,但是如果说有一个集合类你不一定知道或者说肯定没用过,你相不相信呢?今天跟大家介绍的就是 java.util.EnumMap,也是 java.util包下面的一个集合类,同样的也有对应的的java.util.EnumSet,下面我们看一下吧。
苏州程序大白
2022/04/28
1540
Java 中一个你绝对没用过,但是很好用的数据结构
java | 深入理解Java枚举类型(二)
blog.csdn.net/javazejian/article/details/71333103
JavaFish
2019/10/17
1.3K0
你需要知道的Java枚举知识
枚举(enum全称为enumeration)类型是Java 5新增的类型,存放在java.lang包中,允许用常量来表示特定的数据片断,而且全部都以类型安全的形式来表示。
Abalone
2022/07/14
5910
JDK基础类库java.util包下那些你可能不知道的工具们大盘点(一)EnumMap、EnumSet【享学Java】
聊了很长时间逻辑性非常强的Spring框架,这篇文章来些轻松点的内容:聊聊JDK基础类库中那些你可能不知道的工具。
YourBatman
2019/09/03
9430
Java中的枚举,竟然有这么多不为人知的知识点
Java枚举,也称作Java枚举类型,是一种字段由一组固定常量集合组成的类型。枚举的主要目的是加强编译时类型的安全性。enum关键字是Java中的保留关键字。
程序新视界
2021/03/20
5750
Java 枚举:理解枚举本质
注意:C 语言中枚举成员的值是根据上下文自动加 1 的(GREEN = 1, BLUE = 2 等)。
用户7886150
2020/12/03
1.5K0
Java基础之集合框架--EnumMap(枚举映射类)
程序内部能够区分没有映射和映射为null的情况,但是两者最终的返回结果都是一样的,都是null
用户7886150
2021/04/22
7480
Java枚举详解
枚举是一个被命名的整型常数的集合,用于声明一组带标识符的常数。 枚举在曰常生活中很常见,例如一个人的性别只能是“男”或者“女”,一周的星期只能是 7 天中的一个等。类似这种当一个变量有几种固定可能的取值时,就可以将它定义为枚举类型。
全栈程序员站长
2022/09/05
8110
为什么建议你使用枚举?
枚举是 JDK 1.5 新增的数据类型,使用枚举我们可以很好的描述一些特定的业务场景,比如一年中的春、夏、秋、冬,还有每周的周一到周天,还有各种颜色,以及可以用它来描述一些状态信息,比如错误码等。
磊哥
2020/06/29
4010
为什么建议你使用枚举?
相关推荐
Java枚举(enum)常用的用法总结
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档