Java Enum 枚举详解

实体类中使用枚举类作为字段类型,前后端数据库类型转换的方法 分析: 在开发过程中,碰到枚举类型的字段,比如人的性别,用户的状态,订单的状态,我们往往在数据库层中使用数字 1、2等来存储数据。 在后端实体定义时,字段类型使用数字类型。使用这种方法,需要对前端传来的数据进行合法性校验,业务代码上比较啰嗦,所以使用枚举类来定义字段类型为更好的选择。 但是在一个实体类中使用枚举类型,有两个问题: 1、前端传来的参数,如何反序列化构造这个实体,如何构造实体中的这个枚举类。 2、后端使用的这个实体,如何保存到数据库中。 常见的实体类中的类型String对应数据库中的varcha 阅读详情

在某些情况下,一个类的对象是有限而固定的。比如季节类,它只有4个属性。像这种实例有限且固定的类,被称为枚举类。没错,它仍然是一个类,具有类所有的特性。
下面就开始创建一个枚举类吧:

**

  • 无法创建枚举文件的问题

**

new>Enum
哎呀,结果发现创建的时候无法创建(如果你用的是eclipse),如下图:
这里写图片描述
这是因为Eclipse可以指定编译深度,默认值为1.4,而枚举是在jdk1.5之后出现的。需要去修改:Project>proterties>Java Compiler。然后去修改,如图:
这里写图片描述
然后应用ok。

接下来创建一个Colo枚举类,有三个实例对象

public enum Color {
    RED,GREEN,BLUE;
}

在枚举类中有三个实体类对象。
1.而且它们只能被写在第一行,否则这些实体对象无效。
2.枚举类继承的是Enum类,不可以显示去继承其它类,而Enum类实现了Serializable和Comparable接口
3.如果枚举类是非抽象的,那么它不能被继承

  • switch语句同样提供了对枚举类的支持:
public class Test {
    public static void main(String[] args) {
        //调用test方法并传递BLUE对象
        test(Color.BLUE);
    }
    /**
     * 
     * @param c 枚举类对象
     */
    public static void test(Color c) {
        switch (c) {
        case RED:
            System.out.println("红");
            break;
        case BLUE:
            System.out.println("蓝");
            break;
        case GREEN:
            System.out.println("绿");
            break;
        default:
            break;
        }
    }

}

可以看出,在switch语句中,可以直接写对象名称,不用通过类名点出。
**

  • 枚举类也是类

**
枚举类也是一种类,里面同样可以有成员变量、方法、构造方法。

  • 枚举类中成员变量:
public enum Color {
    RED,GREEN,BLUE;
    public String name;
}

使用:

public class Test {
    public static void main(String[] args) {
        Color.BLUE.name="蓝色";
        System.out.println(Color.BLUE.name);
    }

}

输出:蓝色
和普通类对象的用法没有区别。

  • 成员方法:
public enum Color {
    //三个实体类对象
    RED,GREEN,BLUE;
    //成员变量
    public String name;

    /**
     * 成员方法
     * @param str
     */
    public void eat(String str){
        System.out.println(str);
    }
}

调用:

public class Test {
    public static void main(String[] args) {
        Color.BLUE.eat("不能吃");
    }

}
  • 构造方法
public enum Color {
    //三个实体类对象,此处的枚举值,必须调用构造方法来创建(因为只有一个构造方法)
    RED("红色"),GREEN("绿色"),BLUE("蓝色");
    //成员变量
    public String name;
    //有参构造方法
    private Color(String name) {
        this.name = name;
    }

    /**
     * 成员方法
     * @param str
     */
    public void eat(String str){
        System.out.println(str);
    }
}

和普通类一样,写了什么构造方法,就只能用哪个构造方法。

  • 枚举类实现接口
public enum Color implements Runnable{
    //三个实体类对象,此处的枚举值,必须调用构造方法来创建(因为只有一个构造方法)
    RED,GREEN,BLUE;
//重写接口的方法
    @Override
    public void run() {


    }
}

可以看到,和普通类的继承没什么区别,但是每个对象所执行的重写的方法都是一样的,做的事情也就是一样的。很多情况下,我们的需求是不同的对象,处理不同的数据,那就要分别去重写这些方法。

public enum Color implements Runnable{
    //这是一个通过匿名内部类得到的对象
    RED{

        @Override
        public void run() {
            System.out.println("红光");

        }

    }
    ,GREEN{

        @Override
        public void run() {
            System.out.println("绿光");

        }

    }
    ,BLUE{

        @Override
        public void run() {
            System.out.println("蓝光");

        }

    };
}

这个时候的枚举类Color并没有重写接口的抽象方法,那么Color就是一个抽象的枚举类,可以通过子类对象获得具体实例。

调用:

public class Test {
    public static void main(String[] args) {
        Color.BLUE.run();
    }

}

输出:蓝光

专门用来保存枚举实体类对象的集合有EnumSet和EnumMap。
总之,枚举也是类。就好像正方形也是矩形一样。

java enum枚举详解 说法是否正确enum底层基于✅完全正确所有枚举都隐式继承Enum<E>✅ 是name和ordinal来自Enum类✅ 是开发者不能手动继承Enum✅ 是(语言禁止)枚举仍是“类”,只是特殊语法✅ 是enum关键字的本质,就是 Java 提供的一种“安全、简洁、功能完整”的方式,来创建继承自的常量类。这就是 Java 枚举既简单又强大的秘密 🌟这是一个非常深刻的问题!你已经触及了 Java 语言设计的核心安全机制。问题答案能否手动?❌不能,编译器禁止为什么禁止? 阅读详情

相关推荐

枚举类型enum用法赋值

枚举常量是一种枚举类型中的值,及枚举值,枚举类型是由用户自定义的,只用用户在程序中定义它才能被使用。创建一个枚举类型的基本语法: enum 枚举类型名{ 枚举值1,枚举值2,… } 枚举类型名是由用户自定义的,同时枚举值通常都会用大写,多个枚举值之间用逗号隔开。例如:

计算机毕业论文源码,学生个人网页制作html源码。贴近用户做网络推广和互联网优化。 2337

【Java枚举enum】--- 基本使用

Java基础之枚举

qq_44397508的博客 1868

准确率、召回率、f1指标计算的区别

准确率是模型正确预测的样本占总样本的比例。

stephen147的博客 1414

Java enum 对枚举元素的赋值和取值

package edu.fjnu501.bankenum; public enum Trade { save("0"), withdraw("1"); private String type; Trade(String s) { type = s; } public String getType() { return this.type; } } 通过定义构造方法和get方法即可对枚举元素进行赋值和取值 if.

AdamShyly的博客 4274

AI应用架构师干货:智能财务分析AI平台可视化模块设计(附最佳实践)

智能财务分析的价值,从来不是“AI模型有多准”,而是“财务人员能用上AI的结果”。可视化模块的设计,本质是**“站在业务用户的角度,重新定义技术的价值”**——它不需要复杂的动画,不需要华丽的特效,只需要“把AI的结果翻译成财务人员能看懂的语言”。作为AI应用架构师,我们的使命不是“打造最先进的技术”,而是“打造最有用的技术”。而可视化,就是连接技术与业务的那座“桥”。附录:实战项目GitHub仓库(注:此处可放置实际项目的GitHub链接,包含完整代码、数据样例、部署文档)作者简介。

SuperAGI2025 1156

保姆级教程:在Zynq UltraScale+ EV系列FPGA上,用VCU IP核搞定4K60帧H265视频解码与HDMI2.0输出

本文提供在Zynq UltraScale+ EV系列FPGA上使用VCU IP核实现4K60帧H265视频解码与HDMI2.0输出的全流程指南。从开发环境准备、Vivado工程配置到PetaLinux系统定制,详细解析硬件选型、IP核参数设置及性能优化技巧,帮助开发者快速构建高效视频处理系统。

weixin_30800987的博客 432

java定义枚举并赋值_java中枚举的特性是什么?如何赋值?

上次已经为大家介绍过java枚举的概念是什么的主要内容了。今天再来为大家介绍一些相关的知识,也是关于java枚举的一些内容,也就是它的特性以及如何赋值,一起来了解一下吧。首先说一下,java中枚举的特性是什么?枚举的特性,归结起来就是一句话:除了不能继承,基本上可以将enum看做一个常规的类。但是这句话需要拆分去理解。1.我们都知道,枚举是可以添加方法的,枚举值默认为从0开始的有序数值 。那么问题...

weixin_32821643的博客 3597

uniapp运行钉钉小程序

因项目原因,公司需要在钉钉里面开发小程序。之前用uniapp开发过app,H5,小程序。还真没尝试过钉钉小程序,今天就简单的记录下uniapp运行钉钉小程序中的过程。

YL 2919

java中 enum什么意思_Java中枚举Enum的使用详解

在某些情况下,一个类的对象时有限且固定的,如季节类,它只有春夏秋冬4个对象这种实例有限且固定的类,在 Java 中被称为枚举类;在 Java 中使用 enum 关键字来定义枚举类,其地位与 class、interface 相同;枚举类是一种特殊的类,它和普通的类一样,有自己的成员变量、成员方法、构造器 (只能使用 private 访问修饰符,所以无法从外部调用构造器,构造器只在构造枚举值时被调用)...

weixin_31925745的博客 1991

MATLAB R2022b 安装教程

1. 下载安装先放资源链接,百度网盘太贵了不想续了,换了夸克网盘。1. 下载安装。

qq_51654158的博客 2万+

【重识云原生】第四章云网络4.7.5节vDPA方案——virtio的半硬件虚拟化实现

vDPA(vhost Data Path Acceleration)即是让virtio数据平面不需主机干预的解决方案。该框架由Redhat提出,实现了virtio数据平面的硬件卸载。控制平面仍然采用原来的控制平面协议,当控制信息被传递到硬件中,硬件完成数据平面的配置之后,数据通信过程由硬件设备(智能网卡)完成,虚拟机与网卡之间直通。中断信息也由网卡直接发送至虚拟机不需要主机的干预。......

junbaozi的专栏 2188

Java枚举类enum原理详解

Java枚举类enum原理详解为什么要使用枚举类枚举类原理三、enum类所继承的父类java.lang.Enum其他用法附java.lang.Enum源码 为什么要使用枚举类 枚举类enum作为Java5新增特性的一部分,是用来代替常量的。 比如以下场景,定义一年的四个季节: public class Season { public final int SPRING = 1; pu...

qq_34826261的博客 1273

华为OD机试真题 新系统2026-04-01 C++ 实现【勇攀数字高峰】

请你在给定的数字地形图中寻找登山路径,数字代表当前位置的海拔高度,要求从最低海拔出发,不断攀登,最终到达最高山峰。你需要寻找所有满足条件的登山路径。地图已经保证最低海拔和最高山峰都只有一个。

MISAYAONE的博客 383

java enum 父类_枚举基类Enum详解

本文主要是对枚举类型的基类Enum类做一个介绍:首先,Enum类位于java.lang包下,根据类的介绍可以发现,Enum类是Java中所有枚举类的父类,将枚举作为一个set或者Map的keys来使用具有很高的效率。Enum类是一个抽象类,实现了Comparable和Serializable接口,在类中只有两个成员变量name和ordinal,分别表示枚举的名字和序号均为private,但是提供了...

weixin_29977617的博客 2381

蓝牙协议栈详解(3)——BTstack

BTstack是一个轻量级蓝牙协议栈,支持经典蓝牙(BR/EDR)和低功耗蓝牙(BLE)。它采用事件驱动模型,可运行在MCU/CPU上,通过HCI接口与蓝牙控制器通信。协议栈包含完整的蓝牙协议层支持,如L2CAP、RFCOMM、ATT/GATT等,并提供丰富的示例代码。 主要特点包括模块化设计、开源授权、支持多种HCI传输方式(UART/USB)和操作系统适配。开发时需要关注事件驱动编程模型、内存配置优化、HCI传输稳定性等问题。典型应用场景包括SPP串口通信、BLE外设开发等。 使用建议从最小示例开始,逐

嵌入式软硬件叶玄 293

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

Java 枚举(enum) 详解7种常见的用法

DK1.5引入了新的类型——枚举。在 Java 中它虽然算个“小”功能,却给我的开发带来了“大”方便。 用法一:常量 在JDK1.5 之前,我们定义常量都是: public static final… 。现在好了,有了枚举,可以把相关的常量分组到一个枚举类型里,而且枚举提供了比常量更多的方法。 Java代码 public enum Color { RED, GREEN, BLANK, YELLOW } 用法二:switch JDK1.6之前的switch语句只支持int,char,enum类

荒的博客 1万+

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

Java 枚举 enum 详解

枚举类型 Java5 中添加了一个 enum 关键字,通过 enum 关键字,我们可以将一组拥有具名的值的有限集合创建为一种新的类型,这些具名的值可以作为常规的程序组件使用,例如: public enum Spiciness { NOT, MILD, MEDIUM, HOT, FLAMING } 复制代码 这里创建了一个名为 Spiciness 的枚举类型,它有 5 个值。由于枚举类型的实例是常量,因此按照命名惯例,它们都用大写字母表示(如果名称中含有多个单词,使用下划线分隔) 要使用

bieber007的博客 732

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

JAVA Enum枚举类详解

在一些情况下,一个类的对象是有限且固定的,如季节类,只有春夏秋冬4个对象,这种实例有限且固定的类,在JAVA里称为枚举类。   1.手动实现枚举类 采用的设计方式: 通过private将构造器隐藏起来 把这个类所有可能的实例都使用public static final修饰的类变量来保存   首先定义一个Season类 public class Season{ private fi

cxy_d的博客 1816

Java枚举(enum)详解

目录1. 枚举概述2. 枚举类型的定义2.1 自定义枚举类2.2 使用enum定义枚举3. 枚举的隐含直接父类:Enum类3.1 Enum类的主要方法4. 枚举实现接口 1. 枚举概述 枚举:列举,一个一个地列出来。 Java枚举:把某个类型的对象,全部列出来。 什么情况下会用到枚举类型? 某些类的对象只有确定的有限个时,可以把这样的类声明为枚举。 例如: 星期:Monday(星期一)…Sunday(星期天) 性别:Male(男)、Female(女) 月份:January(1月)…December(1

sun10367的博客 1339

Java基础 | Java枚举(Enum)详解:从入门到实践

Java基础 | Java枚举(Enum)详解:从入门到实践

qq_20236937的博客 8034

java 枚举 Enum 详解

1、反遍Yi枚举类 1.1 举例1:普通枚举类 enum代码: public enum ColorEnum { RED, BLACK, BLUE; ColorEnum() { } } jad下载 编Yi并反编Yi: 反编Yi后的代码: 多了values(),valueOf(String s)方法 // Decompiled by Jad v1.5.8g. Copyrigh...

try to do 267

java enum 序号_Java的枚举enum示例详解

一. 什么是枚举枚举是一种数据类型,具有集合的一些特点,可以存放多个元素,但存储对象有限且固定,枚举也有比较常见的使用场景,如我们需要表达性别(男、女),颜色(红、黄、蓝),星期(星期一、星期二...星期日),四季(春、夏、秋、冬),地理位置(东、西、南、北),方向(前、后、左、右)等,这些场景都非常适合枚举。二. 定义枚举java中使用enum来定义枚举,和class,interface具有同样...

weixin_33328904的博客 1379

Java (枚举) Enum 详解

枚举是一个被命名的整型常数的集合,用于声明一组带标识符的常数。枚举在日常生活中很常见,例如表示星期的SUNDAY、MONDAY、TUESDAY、WEDNESDAY、THURSDAY、FRIDAY、SATURDAY就是一个枚举。Java枚举类使用关键字来定义,各个常量使用逗号","来分割,结尾使用分号";"结束。enum定义的枚举类默认继承了java.lang.Enum类,并实现了java.lang.Serializable和java.lang.Comparable两个接口。...

weixin_62466605的博客 7667

java enum详解_Java枚举类型enum使用详解

java的Enum枚举类型终于在j2se1.5出现了。之前觉得它只不过是鸡肋而已,可有可无。毕竟这么多年来,没有它,大家不都过得很好吗?今日看《Thinking in Java》4th edition,里面有一句话“有时恰恰因为它,你才能够"优雅而干净"地解决问题。优雅与清晰很重要,正式它们区别了成功的解决方案与失败的解决方案。而失败的解决方案就是因为其他人无法理他。"使用Enum枚举类型,可以将...

weixin_31040783的博客 243
上一篇: Kotlin入门语法
下一篇: java 深入理解泛型
彼天
博客等级 码龄11年 37粉丝 85原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值