当前位置: 首页 > news >正文

Java枚举类详解

一、定义格式

public enum s {
        枚举项1,枚举项2,枚举项3;
}
// 定义一个枚举类,用来表示春,夏,秋,冬这四个固定值
public enum Season {SPRING,SUMMER,AUTUMN,WINTER;
}

二、枚举的特点

1、所有枚举类都是Enum的子类
2、我们可以通过"枚举类名.枚举项名称"去访问指定的枚举项
3、每一个枚举项其实就是该枚举的一个对象
4、枚举也是一个类,也可以去定义成员变量
5、枚举类的第一行上必须是枚举项,最后一个枚举项后的分号是可以省略的,但是如果枚举类有其他的东西,这个分号就不能省略。建议不要省略
6、枚举类可以有构造器,但必须是private的,它默认的也是private的。
枚举项的用法比较特殊:枚举("");
7、枚举类也可以有抽象方法,但是枚举项必须重写该方法
public enum Season {SPRING("春"){//如果枚举类中有抽象方法//那么在枚举项中必须要全部重写@Overridepublic void show() {System.out.println(this.name);}},SUMMER("夏"){@Overridepublic void show() {System.out.println(this.name);}},AUTUMN("秋"){@Overridepublic void show() {System.out.println(this.name);}},WINTER("冬"){@Overridepublic void show() {System.out.println(this.name);}};public String name;//空参构造//private Season(){}//有参构造private Season(String name){this.name = name;}//抽象方法public abstract void show();
}public class EnumDemo {public static void main(String[] args) {//第二个特点的演示//我们可以通过"枚举类名.枚举项名称"去访问指定的枚举项System.out.println(Season.SPRING);//第三个特点的演示//每一个枚举项其实就是该枚举的一个对象Season spring = Season.SPRING;}
}

三、枚举的方法

方法名说明
String name()获取枚举项的名称
int ordinal()返回枚举项在枚举类中的索引值
int compareTo(E o)比较两个枚举项,返回的是索引值的差值
String toString()返回枚举常量的名称
static T valueOf(Class type,String name)获取指定枚举类中的指定名称的枚举值
values()获得所有的枚举项

 

public enum Season {SPRING,SUMMER,AUTUMN,WINTER;
}public class EnumDemo {public static void main(String[] args) {// String name() 获取枚举项的名称String name = Season.SPRING.name();System.out.println(name);System.out.println("‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐");// int ordinal() 返回枚举项在枚举类中的索引值int index1 = Season.SPRING.ordinal();int index2 = Season.SUMMER.ordinal();int index3 = Season.AUTUMN.ordinal();int index4 = Season.WINTER.ordinal();System.out.println(index1);System.out.println(index2);System.out.println(index3);System.out.println(index4);System.out.println("‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐");// int compareTo(E o) 比较两个枚举项,返回的是索引值的差值int result = Season.SPRING.compareTo(Season.WINTER);System.out.println(result);//‐3System.out.println("‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐");// String toString() 返回枚举常量的名称String s = Season.SPRING.toString();System.out.println(s);System.out.println("‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐");// static <T> T valueOf(Class<T> type,String name)// 获取指定枚举类中的指定名称的枚举值Season spring = Enum.valueOf(Season.class, "SPRING");System.out.println(spring);System.out.println(Season.SPRING == spring);System.out.println("‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐");// values() 获得所有的枚举项Season[] values = Season.values();for (Season value : values) {System.out.println(value);}}
}

相关文章:

Java枚举类详解

一、定义格式 public enum s { 枚举项1,枚举项2,枚举项3; } // 定义一个枚举类&#xff0c;用来表示春&#xff0c;夏&#xff0c;秋&#xff0c;冬这四个固定值 public enum Season {SPRING,SUMMER,AUTUMN,WINTER; } 二、枚举的特点 1、所有枚举类都是Enum的子类 2、我们可以通…...

C语言数组

一.数组定义 数组由数据类型相同的一系列元素组成 如 int main(){ float candy[365]; char code[12]; int states[50]; … } cnady是包含了365个float元素的数组。code是包含了12个char类型的数组。states包含了50个int类型的数组。 二.数组初始化和取值 我们使用花括号包含值&…...

Scala 入门(第一章Scala 环境搭建、插件的安装)

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 第 1 章 Scala 入门1.1 概述1.1.1 为什么学习 Scala1.1.2 Scala 发展历史1.1.3 Scala 和 Java 关系1.1.4 Scala 语言特点1.2 Scala 环境搭建1.3 Scala 插件安装1.4 HelloWorl…...

math@多项式@求和式乘法@代数学基本定理

文章目录多项式求和式乘法应用代数学基本定理相关证明高次方程其他关于多项式的参考多项式求和式乘法 S∏j1(∑k1ajk)⁣ ⁣ ⁣j∏j1m(∑k1njajk)⁣ ⁣ ⁣jS\prod_{j1}\left(\sum\limits_{k1}a_{jk}\right)_{\!\!\!j} \\\prod_{j1}^{m}\left(\sum\limits_{k1}^{n_j}a_{jk}\r…...

Kafka系列之:基于SCRAM和Ranger机制完成动态新增kafka读写账号、赋予账号对指定Topic的读写权限

Kafka系列之:基于SCRAM和Ranger机制完成动态新增kafka读写账号、赋予账号对指定Topic的读写权限 一、需求背景二、添加写用户三、查看用户是否添加到zookeeper中四、查看用户五、赋予用户topic写权限六、生产者配置文件七、ranger给用户权限八、往Topic写数据九、删除添加的用…...

第五十三章 DFS进阶(一)——剪枝优化

第五十四章 DFS进阶&#xff08;一&#xff09;——剪枝优化一、什么是剪枝&#xff1f;二、剪枝优化的策略1、优化搜索顺序2、排除等效冗余3、可行性剪枝4、最优性剪枝5、记忆化搜索三、例题1、AcWing 165. 小猫爬山&#xff08;DFS 剪枝优化&#xff09;2、AcWing 167. 木棒…...

Java字节码深度知多少?

文章目录1、字节码结构1.1、基本结构1.2、实际观测2、内存表示3、方法调用指令4、invokedynamicEND结语Java真的是长盛不衰&#xff0c;拥有顽强的生命力。其中&#xff0c;字节码机制功不可没。字节码&#xff0c;就像是 Linux 的 ELF。有了它&#xff0c;JVM直接摇身一变&…...

【C++】智能指针(万字详解)

&#x1f308;欢迎来到C专栏~~智能指针 (꒪ꇴ꒪(꒪ꇴ꒪ )&#x1f423;,我是Scort目前状态&#xff1a;大三非科班啃C中&#x1f30d;博客主页&#xff1a;张小姐的猫~江湖背景快上车&#x1f698;&#xff0c;握好方向盘跟我有一起打天下嘞&#xff01;送给自己的一句鸡汤&…...

使用docker配置mysql主从复制

1.新建主服务器容器实例&#xff1a; docker run -p 3307:3306 --name mysql \ -v /docker/mysql/data:/var/lib/mysql \ -v /docker/mysql/conf:/etc/mysql/conf \ -v /docker/mysql/log:/var/log/mysql \ -e MYSQL_ROOT_PASSWORDroot \ -d mysql:5.7 设置容器卷之后&#xf…...

v3 异步组件及分包使用

1 app.vue <template> <!-- vue3异步组件必须使用suspense --> <Suspense> <template #default> <!-- 异步组件 --> <SyncVue></SyncVue> </template> <template v-slot:fallback> <!-- 优先显示骨架屏 --> <…...

实用调试技巧【上篇】

&#x1f534;本文章是在 Visual Studio 2022&#xff08;VS2022&#xff09;编译环境下进行操作讲解 文章目录&#x1f973;1. 什么是bug&#xff1f;&#x1f973;2.调试有多重要&#xff1f;2.1. 我们是如何写代码的&#xff1f;2.2.调试是什么&#xff1f;2.3.调试的基本步…...

JavaScript 教程

手册简介JavaScript 是世界上最流行的脚本语言。 JavaScript 是属于 web 的语言&#xff0c;它适用于 PC、笔记本电脑、平板电脑和移动电话。 JavaScript 被设计为向 HTML 页面增加交互性。 许多 HTML 开发者都不是程序员&#xff0c;但是 JavaScript 却拥有非常简单的语法。几…...

在SpringBoot里面使用原生的Servlet

在SpringBoot里面使用Servlet 首先在主程序中添加注解主程序添加ServletComponentScan // 加上这个注解之后就可以使用原生的组件了 HttpServlet 继承HttpServlet 重写方法 添加WebServlet 第一种方式使用注解 WebServlet(value "/helsk") public class HelloSe…...

商标被驳回,先别慌!挽回商标有办法

商标注册是一个漫长的等待过程&#xff0c;提交了注册申请之后不代表就能得心应手。商标局在接收到申请后&#xff0c;便会开始各阶段审查&#xff0c;面对不符合条件的商标会予以商标驳回。商标局基于什么原因而驳回注册申请呢?驳回后还有必要进行商标驳回复审吗?今天心周企…...

VMware安装Linux虚拟机后忘记root密码处理方法

OS版本&#xff1a;Red Hat 7.7 问题说明&#xff1a; 之前用VMWare安装了一台Linux虚机&#xff0c;由于长期没使用&#xff0c;导致忘记了root密码。所以需要修改root密码。 Root密码修改 现将修改root密码的操作步骤记录如下。 1.启动虚拟机&#xff0c;出现启动倒计时…...

Centos安装OpenResty

文章目录一. OpenResty是什么二. OpenResty的安装1. 安装开发库2. 安装OpenResty仓库3. 安装OpenResty4. 安装opm工具5. 目录结构6. 配置nginx的环境变量7. 启动和运行8. 配置文件修改三. 小案例1. 案例说明2. OpenResty监听请求3. 编写业务代码4. 获取请求参数一. OpenResty是…...

阿里云部署SpringBoot项目

目录 步骤1&#xff1a;购买服务器(新用户免费试用一个月) 步骤2&#xff1a;查看服务器相关信息 ​编辑 步骤3&#xff1a;设置安全组 步骤4&#xff1a;远程连接 步骤5&#xff1a;使用FinalShell连接阿里云服务器 步骤6&#xff1a;阿里云服务器上安装JDK ​编辑 步骤7…...

EdgeCOM嵌入式边缘计算机的参数配置

EdgeCOM嵌入式边缘计算机的参数配置&#xff1a; 下面以 eth0 为例进行命令说明。 在 Linux 系统下&#xff0c;使用 ifconfig 命令可以显示或配置网络设备&#xff0c;使用 ethtool 查询及 设置网卡参数。 设置 IP 地址&#xff0c;查看当前网卡详情&#xff1a; rootfl-imx6u…...

字节软件测试岗:惨不忍睹的三面,幸好做足了准备,月薪15k,拿到offer

我今年25岁&#xff0c;专业是电子信息工程本科&#xff0c;19年年末的时候去面试&#xff0c;统一投了测试的岗位&#xff0c;软件硬件都有&#xff0c;那时候面试的两家公司都是做培训的&#xff0c;当初没啥钱&#xff0c;他们以面试为谎言再推荐去培训这点让我特别难受。 …...

【编程基础之Python】5、安装Python第三方模块

【编程基础之Python】5、安装Python第三方模块安装Python第三方模块为什么需要安装第三方模块Python包管理器介绍pippip installpython -m pip installcondaconda install在Windows环境中安装Python模块安装numpy安装pandas安装matplotlib在Linux环境中安装Python模块在PyCharm…...

CAN总线大数据传输的解决方案

CAN总线通讯最多传输8个字节&#xff0c;如果需要传输大量数据该怎么办呢&#xff1f;这个问题工业界有很多成熟的解决方案&#xff0c;我现在就来详细为你介绍各种处理方法。 一、CAN协议的限制原因 CAN帧的数据场限制为8字节&#xff0c;主要是为了保证&#xff1a; • 实时性…...

STM32L0待机模式唤醒后程序跑飞?用LL库/HAL库正确处理系统复位与初始化

STM32L0待机模式唤醒后的系统复位陷阱与实战解决方案 引言&#xff1a;被忽视的唤醒后世界 当你按下STM32L0的唤醒按键&#xff0c;看到电流表指针从微安级跳回毫安级&#xff0c;内心是否涌起一阵成就感&#xff1f;但紧接着&#xff0c;OLED屏幕不再刷新&#xff0c;蓝牙模块…...

如何高效将LocalSend打包为MSIX:完整Windows商店发布实战指南

如何高效将LocalSend打包为MSIX&#xff1a;完整Windows商店发布实战指南 【免费下载链接】localsend localsend - 一个开源应用程序&#xff0c;允许用户在本地网络中安全地共享文件和消息&#xff0c;无需互联网连接&#xff0c;适合需要离线文件传输和通信的开发人员。 项…...

Java OOM 异常:从原理、场景、排查到解决方案全攻略

原理 → 场景 → 排查 → 解决方案&#xff08;面试 线上实战必备&#xff09;这是后端开发、测试、运维必须烂熟于心的终极 OOM 指南&#xff0c;结构清晰、可直接用于复习、面试、故障处理。一、OOM 基础&#xff1a;到底什么是 OOM&#xff1f;1. 定义OOM OutOfMemoryErro…...

基于YOLOv10深度学习的变电站液体泄露红外检测系统(YOLOv10+YOLO数据集+UI界面+Python项目+模型)

一、项目介绍 项目背景 随着电力系统的快速发展&#xff0c;变电站作为电网的核心节点&#xff0c;其安全稳定运行至关重要。液体泄漏&#xff08;如绝缘油、冷却液等&#xff09;是变电站设备&#xff08;如变压器、电抗器、套管等&#xff09;的常见故障之一&#xff0c;若…...

一站式云存储整合:NetMount 2024实战指南

一站式云存储整合&#xff1a;NetMount 2024实战指南 【免费下载链接】NetMount 统一管理和挂载云存储设施/Unified management and mounting of cloud storage facilities 项目地址: https://gitcode.com/gh_mirrors/ne/NetMount 在当今多云环境下&#xff0c;企业和个…...

Simulink中卷积码编码硬判决、软判决译码BPSK系统误码率性能仿真的Matlab 201...

simulink 卷积码编码硬判决软判决译码BPSK系统误码率性能仿真 Matlab2015及以上版本可以运行。最近在折腾通信系统的误码率仿真&#xff0c;发现Simulink搞数字通信建模是真的方便。特别是卷积码这种自带状态记忆的编码方案&#xff0c;用模块拖拽比纯代码实现直观多了。今天咱…...

网页设计毕业设计选题指南:从零构建一个响应式个人作品集网站

作为一名即将毕业的计算机相关专业学生&#xff0c;你是否正为“网页设计”这门课的毕业设计选题而头疼&#xff1f;选题太简单&#xff0c;显得没技术含量&#xff1b;选题太复杂&#xff0c;又怕自己搞不定&#xff0c;最后做出一个只能在老师电脑上运行的“演示即崩溃”项目…...

解决 chattts.core 的 invalid characters 警告:高效字符处理方案

最近在折腾一个文本转语音的项目&#xff0c;用到了 chattts 这个库。功能很强大&#xff0c;但时不时就会在日志里看到一行刺眼的警告&#xff1a;chattts.core:invalid characters found! : {:}。这个警告虽然不会直接让程序崩溃&#xff0c;但就像鞋里的一粒沙子&#xff0c…...

1117系列LDO稳压器评测与选型指南

1. 1117系列线性稳压器深度评测与技术分析1.1 线性稳压器基础原理线性稳压器(LDO)作为电源管理系统的核心器件&#xff0c;承担着电压转换与稳定的关键功能。其工作原理是通过内部反馈环路调节导通元件的阻抗&#xff0c;将输入电压转换为稳定的输出电压。在嵌入式系统设计中&a…...