java基础——了解Enum

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

初识Enum

enum,称为枚举。发音为[‘enəm],全称enumeration,JDK 1.5新增的特性,用于定义一组有共同特性的数据。

不使用枚举声明一组常量:

public class Color{
    public final static int RED = 1;
    public final static int GREEN = 2;
    public final static int BLANK = 3;
    public final static int YELLOW = 4;
}
public class Singal{
    public final static int RED = 1;
    public final static int GREEN = 2;
    public final static int YELLOW = 4;
}
public class TrafficLight {
    int color = 1;

    public void change() {
        switch (color) {
        case Color.RED:
            color = Signal.GREEN;
            break;
        case Color.YELLOW:
            color = Signal.RED;
            break;
        case Color.GREEN:
            color = Signal.YELLOW;
            break;
        }
    }
}

enum声明及与switch结合使用方法:

public enum Color {  
  RED, GREEN, BLANK, YELLOW  
} 

enum Signal {
    GREEN, YELLOW, RED
}

public class TrafficLight {
    Signal color = Signal.RED;

    public void change() {
        switch (color) {
        case RED:
            color = Signal.GREEN;
            break;
        case YELLOW:
            color = Signal.RED;
            break;
        case GREEN:
            color = Signal.YELLOW;
            break;
        }
    }
}

初看上去两种方法似乎没有什么差别,那我们想一下,如果color是传入给方法的一个参数,那意味着原始的方法可以接收任何int的值,因此,您需要检测上界和下界,在出现无效值的时候,可能还要包含一个 IllegalArgumentException 。而enum类型不存在这样的问题。

Enum应用

遍历枚举值

for(Color color : Color.values()){
    System.out.println(color);
}

输出结果如下:

RED
GREEN
YELLO
BLANK

通过枚举实现接口

public interface Command {
    void execute();
}

public enum Action3 implements Command {

    GREEN {
        public void execute() {
            out.println("请通过");
        }
    },
    YELLOW {
        public void execute() {
            out.println("请观察后通过");
        }
    },
    RED {
        public void execute() {
            out.println("请停止");
        }
    },
    BLANK {
        public void execute() {
            out.println("空白");
        }
    }

}

public class EnumTest001 {

    public static void main(String[] args) {
        EnumTest001.play(Action3.YELLOW);
        EnumTest001.play(Action3.GREEN);
    }

    static void play(Action3 action) {
        action.execute();
    }

}

//输出結果
请观察后通过
请通过
Frida实战:如何逆向分析某电商App的doCommandNative函数(附完整Hook脚本) 本文详细介绍了如何使用Frida逆向分析电商App中的doCommandNative函数,涵盖动态注册识别、SO加固对抗及高级Hook脚本编写等实战技巧。通过完整Hook脚本示例,帮助安全研究人员深入理解JNICLibrary的关键函数逆向分析方法,提升移动应用安全研究能力。 阅读详情

相关推荐

简单搭建 可视化日志+链路追踪

JAVA 可视化日志、链路追踪、plumeLog、Tlog、Logback

qq_39535439的博客 1204

html 中怎样显示enum,enum怎么读音发音

enum怎么念?请注明音标枚举 [i'nju:mereit]释义:一一列举的意思。 枚举 读音:méi jǔ 详细介绍:在数学和计算机科学理论中,一个集的枚举是列出某些有穷序列集的所有成员的程序,或者是一种特定类型铼,锇,铱,铂,钪,钽,碲,铑,钯,钼,钌,锝,铥分别怎么读?铼lái、锇é、铱yī、铂bó、钪kàng、钽tǎn、碲dì、铑lǎo、钯bǎ、钼mù、钌liǎo、锝dé、铥diū 一、铼...

weixin_30272849的博客 2149

Transformer时序预测避坑指南:TFT在风电场的5个实战经验

本文分享了Temporal Fusion Transformer在风电场功率预测中的五个实战经验,涵盖数据预处理、模型调优、显存优化、注意力机制解读及在线部署。针对风电数据噪声大、概念漂移等挑战,提供了从构建数据质量标签到高效超参调优的具体方案,并强调利用Transformer架构的可解释性进行业务洞察,助力实现稳健的工业级时序预测。

bert9linguist的博客 462

C语言.enum枚举类型

enum的英文为: enumerate 英 [ɪˈnju:məreɪt] 美 [ɪˈnu:məreɪt] vt. 列举,枚举,数 在程序中,可能需要为某些整数定义一个别名,我们可以利用预处理指令#define来完成这项工作,您的代码可能是: #define MON 1 #define TUE 2 #define WED 3 #define THU 4 #define FRI ...

qq_38916259的博客 499

泛微E9表单建模查询列表勾选后带入流程明细表中

注意:参照下图各项配置,否则会有问题。

泛微二次开发后端知识总结 5309

别再纠结了!实测罗技Flow、对拷线、微软Mouse without Borders,我的最终选择是...

本文通过实测对比罗技Flow、对拷线和微软Mouse without Borders等多设备控制方案,详细分析了各自的优缺点及适用场景。作者最终选择了对拷线与罗技键鼠的组合方案,为专业用户提供了稳定可靠的多设备协同办公解决方案,特别适合需要频繁传输大文件和跨设备操作的用户。

weixin_33696106的博客 408

深入理解Java枚举类型(enum)

【版权申明】未经博主同意,谢绝转载!(请尊重原创,博主保留追究权) http://blog.youkuaiyun.com/javazejian/article/details/71333103 出自【zejian的博客】 关联文章: 深入理解Java类型信息(Class对象)与反射机制 深入理解Java枚举类型(enum) 深入理解Java注解类型(@Annotation) 深入理解

zejian的博客 48万+

科普:Frenet坐标

理想情况下,描述这种常见驾驶行为在数学上应该很容易。一种方法是使用新的坐标系。现在,而不是放下一个正常的笛卡尔网格,我们做一些事情,就像你看到下面…Frenet Coordinates是一种以比传统x,y笛卡尔坐标更直观的方式表示道路位置的方式。如果我们想要方程式来描述这个动作,那就不容易了!想象一下像下面这样一条弯曲的道路,笛卡尔坐标系就位于它的上面…使用这些笛卡尔坐标,我们可以尝试描述车辆通常在路上行驶的路径…那么在Frenet坐标系下呈现的典型轨迹是什么样的?在这里,我们定义了一个新的坐标系统。

OceanStar的博客 1万+

Java枚举

枚举全称Enumeration [ˌ ɪnuːməˈ reɪʃn],简称Enum或者enum。枚举是一组常量的集合。枚举类属于一种特殊的类,里面只包含一组有限的特定的对象。枚举的出现可以解决上述的问题。步骤 :①将自定义类的构造器私有化,使其不能被随随便便地new出对象。②取消类中提供的setXxx方法,仅保留getXxx方法,因为“枚举类”对象仅可读,不能随便修改对于对象的描述。③直接在自定义类中创建一组对象,使用的组合实现底层优化。并且要对外暴露这组对象,因此要添加public修饰符。

lmd187的博客 1万+

【板栗糖GIS】新装ArcGIS必调的12个隐藏设置——【效率翻倍指南】

本文详细介绍了新装ArcGIS后必调的12个隐藏设置,涵盖性能优化、路径管理、显示调校、工作流定制等方面,帮助用户显著提升GIS工作效率。从关闭后台地理处理到启用硬件加速,再到个性化快捷键配置,这些实用技巧能让ArcGIS运行更流畅,操作更便捷。

weixin_42524945的博客 546

【Qt-4】QT基于qhttp-server搭建http服务器

QT搭建http服务器

WXG1011的博客 5714

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

JDK1.5引入了新的类型——枚举。在Java中它虽然算个“小”功能,却给我的开发带来了“大”方便。 大师兄我【大师兄】又加上自己的理解,来帮助各位理解一下。 用法一:常量 在JDK1.5之前,我们定义常量都是:public static final....。现在好了,有了枚举,可以把相关的常量分组到一个枚举类型里,而且枚举提供了比常量更多的方法。 Java代码 publ...

请叫我大师兄 88万+

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

java enum getname_Java获取给定Enum值的Enum名称

Java获取给定Enum值的Enum名称给定值,如何获取Java Enum类型的名称?我有以下适用于特定Enum类型的代码,我可以使其更通用吗?public enum Category {APPLE("3"),ORANGE("1"),private final String identifier;private Category(String identifier) {this.identifie...

weixin_34551660的博客 1847

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

Java enum

enum类其实继承了java.lang.Enum.class。 以下为基本用法: package com.example.demo.enums; import java.util.EnumMap; import java.util.EnumSet; /** * @author Grace.Pan * @date 2019/6/18 */ public enum Season { ...

joy_pan的博客 1044

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

Java基础(八):Enum的values()方法

在创建枚举类时,编译器会默认给你继承Enum类。然而Enum类并没有values方法。 通过反射可以了解到values是由编译器添加的 public class Reflection { public static Set<String> analyze(Class<?> enumClazz) { System.out.print...

qq_31473465的博客 1万+

java中enum怎么用_java 中enum的使用方法详解

java 中enum的使用方法详解enum 的全称为 enumeration, 是 jdk 1.5 中引入的新特性,存放在 java.lang 包中。下面是我在使用 enum 过程中的一些经验和总结。原始的接口定义常量public interface iconstants {string mon = "mon";string tue = "tue";string wed = "wed";strin...

weixin_30814157的博客 1839

java中的enum-java中特殊的class;通过字节码来分析enum构成

§1先思考一个问题 先思考一个问题:我们在enum类里,可以直接使用values()或valueOf(String name)方法,我们也没有在enum类里定义这两个方法,怎么就能直接使用呢? 这里先按下不表。 下面是正文。 §2 enum类及其编译后的字节码 在java编程中,我们经常会定义和使用枚举。 简单的enum类及其字节码概览 一个简单的 enum 类定义如下: pu...

gzyes 1479

Java基础之枚举类型Enum的使用

Java基础之枚举类型Enum的使用 定义 public enum AccruedCleanEnum { SPREAD("1","发票"),OTHER("0","收入"),NON_BUSINESS("2","支出"); private String index; private String name; AccruedCleanEnum(String inde...

Lan_Xuan 689

java中 enum什么意思_enum在java中是什么意思

展开全部Enum 类型e5a48de588b662616964757a686964616f31333361313933的介绍枚举类型(Enumerated Type) 很早就出现在编程语言中,它被用来将一组类似的值包含到一种类型当中。而这种枚举类型的名称则会被定义成独一无二的类型描述符,在这一点上和常量的定义相似。不过相比较常量类型,枚举类型可以为申明的变量提供更大的取值范围。举个例子来说明一下,...

weixin_39926042的博客 1782

Java Enum 学习

Java Enum 学习1.       关于Java Enum:学过C/C++等语言的人,应该都对Enum类型略知一二。Enum一般用来表示一组相同类型的常量。如性别、日期、月份、颜色等。对这些属性用常量的好处是显而易见的,不仅可以保证单例,且比较时候可以用”==”来替换e

abing37的专栏 3万+

Java 中的enum类

在Java中可以使用enum来定义一个枚举类。枚举类属于类,是一种特殊的类。 enum类的基类 enum还有基类?是的!每一个enum类都默认有一个基类java.lang.Enum,通过javap -v反编译enum类的class文件可以得到验证: > javap -v com.company.TestEnum Classfile /C:/Users/gyb_c/IdeaProjects/test/out/production/test/com/company/TestEnum.class Las

Cloud-Future的博客 5783

深入了解和学习Java枚举Enum

文章目录深入了解和学习Java枚举Enum枚举类概念枚举类的由来反编译JAVA枚举类枚举类的主要方法枚举类对接口的实现方式枚举类统一实现抽象方法枚举对象分别实现接口中的抽象方法EnumMap用法EnumSet用法枚举类与 Switch 的配合使用利用枚举实现单例模式利用Java枚举实现策略模式参考源代码 深入了解和学习Java枚举Enum 枚举类概念 一个类的对象是有限个,确定的,我们称此为枚举类。 当需要定义和维护一组常量时,强烈建议使用枚举类。 如果一个枚举类中只有一个对象,则可以作为单例模

C. 532

Java的Enum的多态性

看到篇 “ 小谈Java Enum的多态性 ” 的帖子,觉着蛮有意思,转来看看,原文如下: Enum+多态,我没说错,不过Enum是不可以被继承的,也不可以继承自别人,只是能实现接口而已,何谈多态?  不过还是先看看“现象”吧:  Java代码   public enum Fruit {       APPLE, PEAR, PEACH, ORANGE;   }

shushuidewoniu的专栏 1786

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

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

weixin_31925745的博客 1991

java语言基础之enum

java语言中一个类型叫做enum,是一个枚举类型,C、C++中也都有,是一种方便我们定义常量的类!说得再多都显苍白,让我们来看源码,编译器是怎么解释的! 先看demo: public enum Test { GetSessionId("getSessionId"), GetCheckCode("getCheckCode");// 调用两次构造方法 private final

runhwguo的专栏 952

Java基础:Enum的秘密方法values()

Java基础:Enum的秘密方法values() 结论 Enum类并没有values()方法,是用关键字enum创建枚举类时,由编译器静态注入的。 用关键字enum创建枚举类默认继承自Enum 探索 如下图显示了Enum类的方法和属性 下表简单介绍几个常用方法 函数 说明 其他 public final int ordinal() 返回enum声明中枚举常量的位置,从0开始计数 实例方法 public static <T extends Enum> T valueOf(

qq_33828816的博客 829
上一篇: 如何写一篇好的技术博客
下一篇: bulk collect
Ctrain
博客等级 码龄19年 22粉丝 271原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值