枚举类的定义和使用

什么是枚举类型?如何定义和使用枚举? 在C语言中,枚举类型(Enum)是一种用户定义的数据类型,它允许你为一组相关的常量赋予有意义的名字。枚举类型的主要优点是它可以帮助你使代码更易于理解,因为你可以使用有意义的标识符来代替硬编码的整数值。这有助于提高代码的可读性和可维护性。枚举类型通常用于表示一组相关的选项、状态或标志,例如:表示一周中的每一天、颜色选项、操作状态等。使用枚举类型可以让你的代码更加自解释,减少了错误的可能性,因为你不需要记住特定的数值含义。在C语言中,你可以使用enum关键字来定义一个枚举类型。enum 枚举类型名 { 阅读详情

最基本的用法

enum类直接定义

public enum language{
    Java,
    C,
    PHP
}

调用方法:

public void test(){
    System.out.println(language.Java);//输出:Java
    System.out.println(language.Java.ordinal());//输出:0
    System.out.println(language.C.ordinal());//输出:1
    System.out.println(language.Java.getClass().getTypeName());//输出language类
    if("Java".equals(language.Java.name())){
            System.out.println("Java永存");
        }//输出:Java永存
}

可以看到,自己定义名称的枚举类,可以通过ordinal()方法,来获取他当前的顺序位数,并且顺序位数是自己定义的顺序,相邻之间位数差1,且JAVA里不可更改(在C#里可以设置参数,来自定义位数)。也可以通过name()来获取定义名称的String字符串。

这种定义方法很简单,直接写明枚举的名称即可,适用于简单的,对枚举类要求不高的一些方法里。

进阶定义

自定义枚举类

上面的定义简单,所以用途也简单,但是如果此时枚举类中需要添加一些说明性的文字,自定义顺序,或者添加其他内容,enum直接定义则会显得有些单薄无力。

这是我们需要自己定义枚举类:

public class Language{
    private Language(String name,Integer order){
        this.name = name;
        this.order = order;
    }
    private String name;
    private Integer order;
    private String content;
​
    public Integer getOrder() {
        return order;
    }
​
    public void setOrder(Integer order) {
        this.order = order;
    }
​
    public String getName() {
        return name;
    }
​
    public void setName(String name) {
        this.name = name;
    }
    public String getContent() {
        return content;
    }
​
    public void setContent(String content) {
        this.content = content;
    }
    
    public static final Language Java = new Language("Java",1,"JAVA永存");
    public static final Language C = new Language("C",5,"会C的才是大佬");
    public static final Language PHP = new Language("PHP",3,"PHP是世界上最好的语言?");
}

调用:

public void test(){
    System.out.println(Language.Java.getName());//输出Java
    System.out.println(Language.C.getOrder());//输出5
    System.out.println(Language.PHP.getContent());//输出PHP是世界上最好的语言?
}

可以看到,通过构造函数,我们可以定义并且输出我们自己想定义的顺序,以及自定义的内容等,这种方法适合于一些自定义内容较高的方法使用。

究极进化

enum加自定义类!!!

public enum  Language {
    Java("Java",1,"JAVA永存"),
    C("C",5,"会C的才是大佬"),
    PHP("PHP",3,"PHP是世界上最好的语言?");//!!!这里必须适用分号,否则报错
    Language(String name,Integer order){
        this.name = name;
        this.order = order;
        this.content = content;
    }
​
    private Integer order;
    private String name;
    private String content;
​
    public Integer getOrder() {
        return order;
    }
​
    public void setOrder(Integer order) {
        this.order = order;
    }
​
    public String getName() {
        return name;
    }
​
    public void setName(String name) {
        this.name = name;
    }
    public String getContent() {
        return content;
    }
​
    public void setContent(String content) {
        this.content = content;
    }
}

调用:

public void test(){
    System.out.println(Language.Java.ordinal());//输出:0
    System.out.println(Language.C.ordinal());//输出:1
    System.out.println(Language.C.getOrder());//输出:5
    System.out.println(Language.PHP.getContent);//输出:PHP是世界上最好的语言?
    Language language = Language.valueOf("C");
    System.out.println(language.getContent);//输出:会C的才是大佬
}

可以看到,这种方法定义的枚举类,即保留了原始的顺序排位,也可以自己定义顺序和内容,并且enum自带了valueOf方法,可以通过字符串来找到对应的enum值并且输出相关属性值。这种方法相当于是前两种方法的集合应用,也是个人推荐的一种枚举定义方式吧。

🙉愿猿圆缘,愿猿圆愿🙈

枚举类型基础:定义和使用枚举 本文介绍了枚举类型的定义、特点和使用方法。枚举类型是一种特殊的数据类型,用于定义一组命名的常量,具有常量性、有限性和类型安全性等特点。文章详细讲解了枚举类型的声明、初始化以及常用方法,如values()、valueOf()和ordinal()等,并通过季节和颜色的示例代码展示了枚举类型的实际应用。此外,还简要探讨了枚举类型在序列化和反序列化中的处理方式。枚举类型为编程提供了一种高效、安全的管理常量的方法。 阅读详情

相关推荐

解锁Cherry Studio高阶玩法:用MCP实现自动化测试与数据爬取

本文深入探讨了如何利用MCP协议与Cherry Studio结合,实现自动化测试与数据爬取的高阶应用。通过Playwright等工具的MCP集成方案,详细解析了自动化测试流水线构建和智能爬虫系统开发的关键技术,显著提升工程效率和系统适应性。

defi6farmer的博客 275

重新认识java(十) ---- Enum(枚举类)

有的人说,不推荐使用枚举。有的人说,枚举很好用。究竟怎么使用,如何使用,仁者见仁智者见智。总之,先学会再说~

mystery的博客 7万+

瑞芯微rv1126 rtsp+mpp+rga取流

瑞芯微rv1109 rtsp+mpp+rga取流

ZuoSeDiao的博客 6338

枚举类型的详解与使用

简介: 枚举类型是一种特殊数据类型,能够为一个变量定义一组预定义的常量。变量必须等于为其预定义的值之一。在 JDK 1.5 之前没有枚举类型,那时候一般用接口常量来替代。而使用 Java 枚举类型 enum 可以更贴近地表示这种常量。这样做的好处是将常量进行了分类并使其更有意义。声明枚举时必须使用 enum 关键字,然后定义枚举的名称、可访问性、基础类型和成员等。 一、简单枚举的定义方法和解释 定义枚举类型,表示一年四季。代码如下: public enum FourSeasons { spring,//春

u012867993的博客 2407

SecureCRT 9.0最新版安装与激活全攻略(附驱动识别技巧)

本文提供SecureCRT 9.0最新版的详细安装与激活指南,并重点解析了嵌入式开发中串口连接的硬件驱动识别技巧。内容涵盖从安全获取软件、解决USB转串口驱动兼容性问题,到配置SSH与串口会话的完整流程,旨在帮助开发者和工程师高效部署并精通使用这款终端仿真利器。

star的博客 409

生物信息学新手必看:MAFFT多序列比对从安装到实战(附参数优化技巧)

本文为生物信息学新手提供了MAFFT多序列比对工具的完整指南。从Linux环境下的安装部署,到核心算法策略(如FFT-NS-i、L-INS-i)的选择逻辑,再到空位罚分等关键参数的深度解析与优化技巧,手把手教你完成从原始序列到高质量比对结果的实战流程,为后续进化树构建等分析奠定坚实基础。

weixin_29230773的博客 484

Java基础了解-08-枚举/包

枚举/包

Xiaowu2048的博客 653

使用 ABAP Development Tool 登录 SAP BTP ABAP 环境时,遇到弹出框应该怎么办?

但在实际环境里,隐私模式、第三方 Cookie 禁止、跨站追踪限制、缓存代理误命中、混合内容拦截等因素,都可能让这条跳转链路被打断。等),浏览器会弹出系统原生登录框,请求用户输入账号和口令或做集成认证。只要它们在响应头里出现,浏览器就会理直气壮地弹框,这是协议层的强约定。,最终弹出原生登录框。前端与网关领域有个通用的经验规则:如果你看到了原生登录框,而期望的是带样式的。环境里的登录方式表述为基于浏览器的前端认证,也就是这类重定向式的交互。环境的具体落地,拆出几类常见诱因与排障路径,并穿插真实世界的案例。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 369

java 枚举的定义与用法

java 枚举的定义与用法 目录 java 枚举的定义与用法 一、枚举的定义: 二、枚举的使用: 三、枚举优缺点: 四、使用这个常量的方法的缺点: 一、枚举的定义:        枚举是一种特殊的数据类型,之所以特殊是因为它既是一种类(class)类型却又比类型多了些特殊的约束,但是这些约束的存在也造就了枚举类型的简洁,安全性以及便捷性。创建枚举类型要使用enum关键字,隐含了所创...

mengtianqq的博客 6万+

RN8209C单相电量计量芯片调试记录

芯片数据手册-简化版 调试功能是读取直流电池电压,出于这个需求,也就是要读取芯片的3路AD值,因为有效值是针对交流的,这点可以查看手册。 前提知道: 通信: 本次调试采用uart通信,rn8209c只有uart接口,采用9位数据(8位数据+偶校验),读寄存器只需要发送对应寄存器值就行,,波特率是4800,写的话需要保证最高为是1。没仔细读手册,这里吃了很大的亏。 复位: RN8209C支持两只复位方式,一种是发送复位命令复位,另一种是拉低复位引脚25ms以上,复位引脚复用它的串口接收(RX)口,所以拉低ST

wang 恒 的博客 6578

DP83869HM的LWIP性能测试

E:/Xilinx/Vitis/2021.1/data/embeddedsw/ThirdParty/sw_services/lwip211_v2_0/src/contrib/ports/xilinx/netif/xemacpsif_physpeed.c文件中的。然后phy_setup_emacps中调用get_IEEE_phy_speed函数,根据PHY的ID判断出Marvell或TI或Realtek的PHY,调用对应的网速自动协商函数get_TI_phy_speed,该函数中的部分配置需要注释。

FPGA艺术家的博客 355

SpringBoot中各个层级结构详解

在SpringBoot项目中,常常会把代码文件放入不同的包中,例如pojo,dao,service,controller等,在该文中解释各个包的作用以及相关联系

ZHI_YUE的博客 1万+

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

关于Constant常量和枚举类Enum的定义和使用

@关于Constant常量和枚举类Enum的定义和使用 自定义常量Constant final类中定义一个内部接口的方式来定义常量,有如下好处: 1就是归类,使用起来也非常方便。2就是少些很多多余的public static final 的前缀,代码简洁。3就是便于规范取名。 public final class Constant { public interface UpperCaseNu...

dengyu的专栏 4916

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

VC中sqlite的使用

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

python枚举类定义和使用

可以看到,Color 枚举类中 red 和 green 具有相同的值(都是 1),Python 允许这种情况的发生,它会将 green 当做是 red 的别名,因此当访问 green 成员时,最终输出的是 red。一些具有特殊含义的类,其实例化对象的个数往往是固定的,比如用一个类表示月份,则该类的实例对象最多有 12 个;除此之外,该枚举类还提供了一个 __ members __ 属性,该属性是一个包含枚举类中所有成员的字典,通过遍历该属性,也可以访问枚举类中的各个成员。

python56123的博客 228

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

Python枚举类定义和使用

注意,枚举类的每个成员都由2部分组成,分别为name和value,其中name属性值为该枚举值的变量名(如red),value代表该枚举值的序号(序号通常从1开始)。可以看到,Color枚举类中red和green具有相同的值(都是1),Python允许这种情况的发生,它会将green当做是red的别名,因此当访问green成员时,最终输出的是red。属性,该属性是一个包含枚举类中所有成员的字典,通过遍历该属性,也可以访问枚举类中的各个成员。...

萌兔兔MMQ!! 332

Python枚举类:定义、使用和最佳实践

枚举类是一种特殊的数据类型,用于表示一组具有离散取值的常量。它将常量与有意义的名字关联起来,使得代码更易读、更易维护。枚举类的每个成员都有一个唯一的名称和一个关联的值。枚举类的典型用例包括表示颜色、方向、状态、星期几等常量值。使用枚举可以增强代码的可读性,减少硬编码的风险。要定义一个枚举类,需要导入Enum类并创建一个继承自它的子类。在子类中,我们定义枚举成员,并为每个成员分配一个名称和一个关联的值。RED = 1GREEN = 2BLUE = 3在这个示例中,定义一个名为ColorRED。

Saki_Python的博客 1936

C#枚举类型的定义和基本的使用

C#枚举类型算是一个比较基本的类型了。整理一下。 定义 枚举类型是具有一组命名常量的独特的值类型。 例1: enum GameState { Start, Failed, Success, Pause } 例2: public enum Color:byte { Red, Green, Blue } 这里以例1为例,声明了一个GameS...

点点滴滴,记录成长!~~~~~~ 6371

Python教程:python枚举类定义和使用

首先,你需要导入enum模块,然后定义一个枚举类。枚举类中的每个成员都是该类的实例,并且每个成员都有一个唯一的名称和值。RED = 1GREEN = 2BLUE = 3在这个例子中,Color是一个枚举类,它有三个成员:RED、GREEN和BLUE,每个成员都有一个对应的整数值。枚举成员的值不必是整数,它们可以是任何不可变类型(例如字符串、元组等)。print(Status.PENDING.value) # 输出: pending。

m0_65482549的博客 585

Java枚举类(1)--枚举类的定义、方法使用和接口实现

文章目录枚举类的理解枚举类的定义Enum类的主要方法枚举类实现接口 枚举类的理解 当类的对象只有有限个,且确定的,称此类为枚举类。 当需要定义一组常量时,强烈建议使用枚举类。 如果枚举类中只有一个对象,则可以作为单例模式的实现方式。 枚举类的定义 方式一:jdk5.0之前, 自定义枚举类 方式二:jdk5.0, 可以使用enum关键字定义枚举类 ①自定义枚举类 class Season{ //1.声明属性:private,final修饰,私有性,不可变性 private final St

叶绿体不忘呼吸 3004

Python教程:枚举类定义和使用

一些具有特殊含义的类,其实例化对象的个数往往是固定的,比如用一个类表示月份,则该类的实例对象最多有 12 个;再比如用一个类表示季节,则该类的实例化对象最多有 4 个。 针对这种特殊的类,Python 3.4 中新增加了 Enum 枚举类。也就是说,对于这些实例化对象个数固定的类,可以用枚举类来定义。 例如,下面程序演示了如何定义一个枚举类: from enum import Enum class Color(Enum): # 为序列值指定value值 red = 1 green =

Python热爱者的博客 777

java中枚举类的定义和使用

平台一:设备控制器调用方式 /** * 控制器枚举类 */ public enum MediaCtrSeasonEnum { MultimediaOn, MultimediaOff } Server实现 /** * 定义控制器URL的变量 */ private static HttpClient httpClient = new Defau...

weixin_39559301的博客 536
上一篇: SpringBoot+Vue实现Websocket通信及Java实现客户端
下一篇: Vue3下的视频直播流方法(RTSP和HLS流)
黄焖大排骨
博客等级 码龄8年 52粉丝 19原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值