Java中的枚举类型介绍

news2024/9/24 13:26:25

一、背景及定义

情景:

枚举是在JDK1.5以后引入的。

主要用途是:

将一组常量组织起来,在这之前表示一组常量通常使用定义常量的方式:

这种定义方式实际上并不好。

例如:如果碰巧有另一个变量也是1,那么编译器可能就会误认为是RED。

为了避免这种情况,可以使用枚举类型,把这些变量组织起来

这样的话,三种变量(RED、GREEN、BLACK)就有了自己的类型,枚举类型。

这样就很好的区分出来了,RED不在是简单的1.

定义:

enum——枚举类型,是一个类,继承自Enum类。

实际上枚举类型就是一个特殊的自定义类型

代码中的Happy、Enjoy等等,类型都是EnumTest。

注意:

虽然他们的值都是数字(默认从0开始,然后递增),但是,是不能强制类型转换的!:

因为EnumTest类型和int毫不相干。

二、Enum类中常用的方法(重要)

方法名描述
自定义枚举类.values()以数组的形式,返回枚举类型中的所有成员
自定义枚举类.valueOf(String 成员名字)讲普通字符串,转化为枚举实例
自定义枚举类.ordinal(String 成员名字)返回枚举类中某一个成员的索引位置
枚举成员.compareTo(枚举成员)比较两个枚举成员的顺序(返回:左-右)

代码式例:

values()方法:

执行结果:

ordinal()方法:

执行结果:

valueOf()方法:

执行结果:

compareTo()方法:

执行结果:

三、枚举类的构造方法(重要)

枚举类的构造方法很特殊,

默认是private修饰的,并且自己提供构造方法,也只能用private修饰

又因为枚举类型的构造方法只能是private修饰的,因此这个类不能被继承。

因为如果要继承这个类,需要调用枚举类的构造方法,但是它的构造方法是private的,不能调用。

四、枚举的优缺点

优点:

1.枚举常量更简单安全

2.内置方法,代码更简洁

缺点:

不可继承,无法扩展。


补充

在Java SE阶段,我们学过,switch语句中case 值的范围:

现在学了枚举,那我们就来演示一下:

执行结果:


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1644947.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

举个栗子!Alteryx 技巧(11):运用目录工具

你了解目录工具吗,它有什么作用?目录工具可以返回指定目录中所有文件的列表,即返回文件名和有关文件的其他信息,例如文件大小、创建日期、上次修改日期等。那么,怎样运用目录工具返回相关信息呢? 本期《举…

面对 800G 以太网设计的挑战

以太网是一种广泛使用的网络技术,用于连接局域网和广域网中的设备。它以 10 Mbps 的适度速度开始,多年来经历了大规模的创新。如今,以太网技术正朝着 800 Gbps 的速度发展,为数据中心和云计算基础设施等高需求环境提供超快的数据传…

Python-VBA函数之旅-pow函数

目录 一、pow函数的常见应用场景 二、pow函数使用注意事项 三、如何用好pow函数? 1、pow函数: 1-1、Python: 1-2、VBA: 2、推荐阅读: 个人主页:神奇夜光杯-CSDN博客 一、pow函数的常见应用场景 Py…

PyQt5中重要的概念:信号与槽

PyQt中信号与槽概念定义如下(网络上引用的): 信号(signal)和槽(slot)是Qt的核心机制,也是在PyQt编程中对象之间进行通信的机制。在创建事件循环之后,通过建立信号和槽的…

asp.net朱勇项目个人博客(3)

引文:按照书上的项目,我们最后实现管理端的三个增删改查的功能即可,相对与三个增删改查,文章,分类和留言,这里我们所需要用的的关联的一个表就是文章表,因为文章表每一个文章的增加显示和修改都需要对应的一个分类&…

OpenHarmony实战开发-如何实现动画帧

请求动画帧 请求动画帧时通过requestAnimationFrame函数逐帧回调,在调用该函数时传入一个回调函数。 runframe在调用requestAnimationFrame时传入带有timestamp参数的回调函数step,将step中的timestamp赋予起始的startTime。当timestamp与startTime的差…

分布式与一致性协议之ZAB协议(二)

ZAB协议 ZAB协议是如何实现操作地顺序性的? 如果用一句话解释ZAB协议到底是什么,我觉得它是能保证操作顺序性的、基于主备模式的原子广播协议。 接下来,还是以指令X、Y为例具体演示一下,帮助你更好地理解为什么ZAB协议能实现操作…

8086 汇编学习 Part 8

移位指令 当 C N T > 1 CNT > 1 CNT>1 时,CNT 必须是 CL 寄存器 逻辑左移 SHL OPR , CNT 将寄存器或内存单元中的数据向左移 CNT 位,最后移除的一位写入 CF,最低位用 0 补充 循环左移 ROL OPR , CNT 将寄存器中的值的最高位存…

山海鲸医疗科技:引领智慧医疗新潮流

随着科技的飞速发展,智慧医疗已经成为医疗行业创新的重要方向。在这个背景下,山海鲸智慧医疗解决方案应运而生,以其先进的技术和全面的服务,为医疗行业带来了前所未有的变革。 山海鲸智慧医疗解决方案是一套集成医疗信息化、大数…

三丰云:免费虚拟主机和云服务器的全面评测

引言: 在当前数字化时代,云计算已经成为企业和个人实现在线业务和数据存储的重要方式。然而,选择适合自己需求的云服务提供商并非易事。今天,我们将对三丰云的免费虚拟主机和云服务器进行全面评测,帮助您了解其优势和…

FME学习之旅---day26

我们付出一些成本,时间的或者其他,最终总能收获一些什么。 【由于上周,上班状态不是很好,事情多又杂,没有学习的劲头,就短暂的休息了一下下。双休爬山,给自己上了强度,今天才缓过来…

云商城系统,无后门,一站式系统Java源码

云商城系统,无后门,一站式系统Java源码,心权益商品数量不限数量 系统对接 手动发货 自动发货 兑 换 码 订单监控 商品监控 对象存储 邮箱提醒 加价模板 密价功能 三方支付 会员体系 财务明细 交易分析 售后服务 技术支持 建议配置&#xf…

Flask与HTTP

一、请求响应循环 “请求-响应循环”:客户端发出请求,服务器处理请求并返回响应。 Flask Web程序的工作流程: 当用户访问一个URL,浏览器便生成对应的HTTP请求,经由互联网发送到对应的Web服务器。Web服务器接收请求&a…

本地部署开源白板工具Excalidraw并结合内网穿透远程绘制流程图

文章目录 1. 安装Docker2. 使用Docker拉取Excalidraw镜像3. 创建并启动Excalidraw容器4. 本地连接测试5. 公网远程访问本地Excalidraw5.1 内网穿透工具安装5.2 创建远程连接公网地址5.3 使用固定公网地址远程访问 本文主要介绍如何在Ubuntu系统使用Docker部署开源白板工具Excal…

request库爬取100页tb商品信息

注册账号获取api测试key 1.打开淘宝网站登录并且搜索商品信息。和上一篇文章不一样,这一次我们找到search?这个文件右击复制。 2.在上一篇文章用到的在线curl命令转代码网站将复制过来的东西转换成python代码后,运行得到response。 3.建立cs…

Leetcode—1652. 拆炸弹【简单】

2024每日刷题&#xff08;127&#xff09; Leetcode—1652. 拆炸弹 实现代码 class Solution { public:vector<int> decrypt(vector<int>& code, int k) {int codeSize code.size();vector<int> ans(codeSize, 0);if(k 0) {return ans;}if(k > 0)…

vue2.7与vue2.6、vue3的区别

官网链接&#xff1a;https://v2.cn.vuejs.org/v2/guide/migration-vue-2-7.html -组合式与选项式 选项式&#xff1a;export default { 各种选项关键字名&#xff0c;都定好了&#xff0c;无需引入&#xff0c;配对放置即可}

superset与metabase调研比较

BI工具是什么&#xff1f; 百度百科是这么解释的&#xff1a; 商业智能&#xff08;Business Intelligence&#xff0c;简称&#xff1a;BI&#xff09;&#xff0c;又称商业智慧或商务智能&#xff0c;指用现代数据仓库技术、线上分析处理技术、数据挖掘和数据展现技术进行数…

实施MES管理系统时会遇到的风险以及解决方案

在如今竞争激烈的制造业环境中&#xff0c;每个企业都在努力寻求提升管理效率和降低成本的方法。然而&#xff0c;在引入如ERP系统和MES管理系统等先进管理解决方案时&#xff0c;企业不可避免地会遇到一系列风险。这些风险不仅可能影响项目的成功实施&#xff0c;还可能对企业…

06-xss攻防于绕过

xss的攻击于防御 攻击的利用方式 1&#xff09;获取cookie&#xff0c;实现越权&#xff0c;如果是获取到网站管理员的cookie&#xff0c;也可以叫提权。注意尽量尽快退出账号&#xff0c;删除session&#xff0c;让session失效 2&#xff09;钓鱼网站&#xff0c;模拟真实的…