Java枚举(enum)

article/2025/9/27 10:57:25

枚举是一个被命名的整型常数的集合,用于声明一组带标识符的常数。枚举在曰常生活中很常见,例如一个人的性别只能是“男”或者“女”,一周的星期只能是 7 天中的一个等。类似这种当一个变量有几种固定可能的取值时,就可以将它定义为枚举类型。

Java 枚举类使用 enum 关键字来定义,各个常量使用逗号 , 来分割,结尾使用分号;结束

 

定义一个季节的枚举类

enum Season{spring,summer,autumn,winter;
//   常量有 spring, summer, autumn,winter,分别表示春天,夏天,秋天,冬天,系统会自动添加 public static final 修饰
} 
enum Season{spring,summer,autumn,winter;
//   常量有 spring, summer, autumn,winter,分别表示春天,夏天,秋天,冬天,系统会自动添加 public static final 修饰
}public class SeasonEnum {public static void main(String[] args) {System.out.println("请输入季节"+"\n"+"1、春天"+"\n"+"2、夏天"+"\n"+"3、秋天"+"\n"+"4、冬天");Scanner scan =new Scanner(System.in);int seasons= scan.nextInt();change(seasons);}private static void change(int seasons) {Season season=Season.spring;switch (seasons){case 1:season=Season.spring;break;case 2:season=Season.summer;break;case 3:season=Season.autumn;break;case 4:season=Season.winter;break;}System.out.println(season);}
}

枚举类

enum 定义的枚举类默认继承了 java.lang.Enum 类,并实现了 java.lang.Serializable 和 java.lang.Comparable 两个接口。

values(), ordinal() 和 valueOf() 方法位于 java.lang.Enum 类中:

  • values() 返回枚举类中所有的值。
  • ordinal()方法可以找到每个枚举常量的索引,就像数组索引一样。
  • valueOf()方法返回指定字符串值的枚举常量。

values()方法

 values( ) 方法可以将枚举的所有成员以数组形式返回,也可以通过该方法获取枚举类型的成员。

enum Season{spring,summer,autumn,winter;
//   常量有 spring, summer, autumn,winter,分别表示春天,夏天,秋天,冬天,系统会自动添加 public static final 修饰
}}public class SeasonEnum {public static void main(String[] args) {
//        迭代季节for (Season season : Season.values()) {System.out.println(season);}}
}

结果:

ordinal()方法

 ordinal() 方法可以获取一个成员在枚举中的索引位置。下面的示例创建一个包含 3 个成员的枚举类型 Signal,然后调用 ordinal() 方法输出成员及对应索引位置。

enum Season{spring,summer,autumn,winter;
//   常量有 spring, summer, autumn,winter,分别表示春天,夏天,秋天,冬天,系统会自动添加 public static final 修饰
}}public class SeasonEnum {public static void main(String[] args) {
//        迭代季节for (Season season : Season.values()) {
//            ordinal可以找到每个枚举常量的索引,就像数组索引一样。System.out.println(season+"  索引为  "+season.ordinal());}}
}

结果:

 valueOf()方法

valueOf()方法返回指定字符串值的枚举常量

enum Season{spring,summer,autumn,winter;
//   常量有 spring, summer, autumn,winter,分别表示春天,夏天,秋天,冬天,系统会自动添加 public static final 修饰
}}public class SeasonEnum {public static void main(String[] args) {//        使用 valueOf() 返回枚举常量,不存在的会报错 IllegalArgumentExceptionSystem.out.println(Season.valueOf("summer"));//    System.out.println(Season.valueOf("summ"));}
}

结果

枚举类成员

枚举跟普通类一样可以用自己的变量、方法和构造函数,构造函数只能使用 private 访问修饰符,所以外部无法调用。

枚举既可以包含具体方法,也可以包含抽象方法。 如果枚举类具有抽象方法,则枚举类的每个实例都必须实现它。

 

enum Season{spring,summer,autumn,winter;
//   常量有 spring, summer, autumn,winter,分别表示春天,夏天,秋天,冬天,系统会自动添加 public static final 修饰//    构造方法private Season(){System.out.println("Constructor called for :" +this.toString());}public void SeasonInfo(){System.out.println("spring");}}}public class SeasonEnum {public static void main(String[] args) {Season season=Season.spring;season.SeasonInfo();}
}

 


http://chatgpt.dhexx.cn/article/XW8beyY8.shtml

相关文章

如何使用pFuzz以多种方法验证Web应用程序防火墙的安全性

关于pFuzz pFuzz是一款功能强大的Web应用程序防火墙安全检测/绕过工具,可以帮助广大研究人员同时通过多种方式绕过目标Web应用程序防火墙,以测试WAF的安全性。 pFuzz本质上是一款高级红队模糊测试工具,主要用于研究目的。pFuzz基于Python编…

jieba java_【NLP】【一】中文分词之jieba

声明:本文参考jieba官方文档而成,官方链接:https://github.com/fxsjy/jieba 【一】jieba安装 pip install jieba 【二】jieba简介 简介可见jieba官方说明:https://pypi.org/project/jieba/ 总而言之,jieba用于中文分词…

jieba 分词

一.介绍: jieba: “结巴”中文分词:做最好的 Python 中文分词组件 “Jieba” (Chinese for “to stutter”) Chinese text segmentation: built to be the best Python Chinese word segmentation module. 完整文档见 : GitHub: https://github.com…

jieba学习

Jieba jieba的安装主要功能1.主要有三种模式:2. 加载词典3.词性标注4.关键词提取5.Tokenize:返回词语在原文的起止位置 jieba的安装 先在 [http://pypi.python.org/pypi/jieba/]下载 ,解压后运行 python setup.py install 或者pin install j…

jieba 结巴分词详解

🔗 运行环境:python3🚩 作者:K同学啊🥇 精选专栏:《深度学习100例》🔥 推荐专栏:《新手入门深度学习》📚 极品专栏:《Matplotlib教程》📔 选自专栏…

NLP基本工具之jieba详解

jieba的作用只有分词吗? 简介 jieba(结巴)是百度工程师Sun Junyi开发的一个开源库,在GitHub上很受欢迎,使用频率也很高。 GitHub链接:https://github.com/fxsjy/jieba jieba最流行的应用是分词&#xff0…

jieba分词的最详细解读

目录 一,什么是jieba(结巴)库? 二,jieba库的使用规则 三,jieba库具体使用和实例 一,什么是jieba(结巴)库? 字如其名,结巴库主要用于中文分词&…

python中jieba库使用教程

jieba是python的一个中文分词库,下面介绍它的使用方法。 安装 方式1: pip install jieba方式2: 先下载 http://pypi.python.org/pypi/jieba/ 然后解压,运行 python setup.py install 功能 下面介绍下jieba的主要功能&#xff…

基于python中jieba包的详细使用介绍

一,jieba的介绍 jieba 是目前表现较为不错的 Python 中文分词组件,它主要有以下特性: 支持四种分词模式: 精确模式全模式搜索引擎模式paddle模式 支持繁体分词 支持自定义词典 MIT 授权协议 二,安装和使用 1&am…

CRC校验码的计算

循环冗余检验的原理: 在发送端,先把数据划分为组,假定每组k个比特,假定一个待传送的数据M(k位),CRC运算就是在数据M的后面添加供差错检测用的n位冗余码,然后构成一个帧发送出去&…

CRC校验简单记录

先聊聊奇偶校验 所谓通讯过程的校验是指在通讯数据后加上一些附加信息,通过这些附加信息来判断接收到的数据是否和发送出的数据相同。校验得通信双方都有才行,接收方收到数据后进行计算得到一个校验值,与发送方发的校验值比较,如果…

CRC校验总结

事实上网上很多CRC校验算法,在接收端进行CRC校验时,余数不为零。这往往是因为CRC校验算法本身是有问题的,但不妨碍我们进行校验。接收端可以对需要校验的字段带入CRC校验算法,计算得到校验值,并与发送数据中的校验值进…

CRC校验码计算,以常用CRC-8为例

CRC即循环冗余校验码:是数据通信领域中最常用的一种查错校验码,其特征是信息字段和校验字段的长度可以任意选定。 CRC校验原理:在要发送的帧后面附加一个数,生成一个新帧发送给接收端。它要使所生成的新帧能与发送端和接收端共同…

CRC校验码举例

CRC校验码举例 一、首先复习一下异或运算(XOR),相同得0,相异得1. 二、多项式算数 使用多项式算数是为了是为了在进行二进制计算时无需考虑进位问题。 CRC中用到的除数正是由多项式的各项系数组成。 比如1,CRC除数为10111。 三、…

CRC校验查表法原理及实现(CRC-16)

绪论 在网上浏览了很多关于CRC校验的文章,基本上都是针对CRC校验原理的阐述以及关于CRC校验查表法的实际应用以及具体软件实现方法。 至于查的表是怎么来的,软件为什么要这样实现很多文章并没有说明。本篇文章就针对这两点问题进行总结和归纳&#xff0…

CRC校验原理

线性分组码中有一种重要的码称为循环码(Cyclic code),这种码编码和解码都不太复杂,而且检(纠)错能力较强。循环码除了具有线性分组码的一般性质外,还具有循环性。循环性是指任一码组循环一位以后…

CRC码计算及校验原理计算

如何根据多项式计算 循环CRC码 5.3.2 循环冗余校验检错方案 奇偶校验码(PCC)只能校验一位错误,本节所要介绍的循环冗余校验码(CRC)的检错能力更强,可以检出多位错误。 1. CRC校验原理 CRC校验原理看…

CRC码计算及校验原理的最通俗诠释

在上一篇发布了我的最新著作《深入理解计算机网络》一书的原始目录(http://blog.csdn.net/lycb_gz/article/details/8199839),得到了许多读者朋友的高度关注和肯定,本篇接着发一篇关于CRC码校验原理和CRC码计算方面的通俗诠释的试…

最好懂的CRC校验规则讲解

文章目录 前言何为校验如何生成CRC校验码按字节位反转确定左移多少位生成多项式的数值式模二除法其它说明 前言 CRC校验的原理非常复杂,但是用起来却很简单,甚至别人写好了函数,直接拿来调用即可,但是我们还是需要了解一点这个校…

CRC校验原理及代码

参考:CRC校验原理及步骤https://blog.csdn.net/d_leo/article/details/73572373 什么是CRC校验? CRC即循环冗余校验码:是数据通信领域中最常用的一种查错校验码,其特征是信息字段和校验字段的长度可以任意选定。循环冗余检查&am…