Java--枚举类型
Java中枚举类型可以取代一般的常量定义方式,可以将常量封装在类或接口中;枚举类型本质上还是以类的形式存在的,枚举类型继承于java.lang.Enum类,定义一个枚举类型时,每一个枚举类型成员都可以看做是枚举类型的一个实例,这些枚举类型成员默认都被【public+final+static】修饰。
枚举类型声明提供了一种用户友好的变量定义方法,枚举了某种数据类型所有可能出现的值。
枚举类型的优点:
1.类型安全;
2.紧凑有效的数据定义;
3.可以和程序其他部分完美交互;
4.运行效率高;
1.定义枚举类型的关键字【enum】
2.使用枚举类型设置常量
public enum Constants{
Constants_A,
Constants_B,
Constants_C
}
使用时通过Constants.Constants_A来调用。
3.操作枚举类型成员的方法
| 方法名称 | 返回值类型 | 具体含义 | 使用方法 | 举例 |
| values() | 枚举成员的数组 | 将枚举类型成员以数组的形式放回 | 枚举类型名称.values() | Constants.values() |
| valueOf() | 枚举实例对象 | 将普通字符串转换为枚举类型实例 | 枚举类型名称.valuesOf("abc") | Constants.valueOf("abc") |
| compareTo() | int型 | 用于比较2个枚举对象在定义时的顺序 | 枚举对象.compareTo() | Constants_A.compareTo(Constants_B) |
| ordinal() | int型 | 用于得到枚举成员的位置索引 | 枚举对象.ordinal() | Constants_A.ordinal() |
3.1 values()方法
通过此方法获取枚举类型的成员,以数组的形式返回。
package myenum;public class ShowEnum {enum Constants {Constants_A, Constants_B}public static void main(String[] args) {for (int i = 0; i < Constants.values().length; i++) {System.out.println("枚举类型成员变量_" + i + ": " + Constants.values()[i]);}}
}输出:枚举类型成员变量_0: Constants_A枚举类型成员变量_1: Constants_B
3.2 valuesOf()方法
valuesOf()方法可以将普通字符串转换为枚举类型。
3.3 compareTo()方法
compareTo()方法用于比较两个枚举类型对象在定义时的顺序。
package myenum;public class EnumMethodTest {enum Constants2 {constantsxxx, Constants_A, Constants_B, constants_C}public static void compare(Constants2 c) {for (int i = 0; i < Constants2.values().length; i++) {System.out.println(c + "与" + Constants2.values()[i] + "的位置比较结果是:" + c.compareTo(Constants2.values()[i]));}}public static void main(String[] args) {compare(Constants2.valueOf("Constants_B"));}
}输出:Constants_B与constantsxxx的位置比较结果是:2Constants_B与Constants_A的位置比较结果是:1Constants_B与Constants_B的位置比较结果是:0Constants_B与constants_C的位置比较结果是:-1
compareTo()方法的返回结果中:1代表方法中的参数在调用对象之前一个位置;0代表方法中的参数两个对象位置相同;-1代表方法中的参数在调用对象之后一个位置。
3.4 ordinal()方法
ordinal()方法用于获取枚举对象的索引位置。
package myenum;public class EnumIndexTest {enum Constants3 {constantsxxx, Constants_A, Constants_B, constants_C}public static void main(String[] args) {for (int i = 0; i < Constants3.values().length; i++) {System.out.println(Constants3.values()[i] + "的索引是:" + Constants3.values()[i].ordinal());}}
}输出:constantsxxx的索引是:0Constants_A的索引是:1Constants_B的索引是:2constants_C的索引是:3
4.枚举类型中的构造方法
枚举类型中的构造方法必须是private修饰的。
package myenum;public class EnumConstructorMethod {enum Constants4 {con_A("我是枚举成员A"), //定义带参数的枚举类型成员,枚举成员间必须,逗号分隔con_B("我是枚举成员B"),con_C("我是枚举成员C"),con_D(3);private String description;private int i = 4;private Constants4() {}private Constants4(String desc) { //private定义枚举类型的构造方法this.description = desc;}private Constants4(int i) { //private定义枚举类型的构造方法this.i = this.i + i;}public String getDescription() { //获取description的值return description;}public int getI() { //获取i的值return i;}public static void main(String[] args){for (int i=0; i<Constants4.values().length;i++){System.out.println(Constants4.values()[i]+"调用getDescription()方法的结果为:"+Constants4.values()[i].getDescription());System.out.println(Constants4.values()[i]+"调用getI()方法的结果为:"+Constants4.values()[i].getI());}}}
}输出:con_A调用getDescription()方法的结果为:我是枚举成员Acon_A调用getI()方法的结果为:4con_B调用getDescription()方法的结果为:我是枚举成员Bcon_B调用getI()方法的结果为:4con_C调用getDescription()方法的结果为:我是枚举成员Ccon_C调用getI()方法的结果为:4con_D调用getDescription()方法的结果为:nullcon_D调用getI()方法的结果为:7
相关文章:
Java--枚举类型
Java中枚举类型可以取代一般的常量定义方式,可以将常量封装在类或接口中;枚举类型本质上还是以类的形式存在的,枚举类型继承于java.lang.Enum类,定义一个枚举类型时,每一个枚举类型成员都可以看做是枚举类型的一个实例…...
有没有好用的配音工具?推荐这5款
为什么越来越多的短视频创作者愿意使用配音工具。 除了这些配音工具可以进行批量处理,实现大规模的音频制作,从而提高生产效率。还可以帮助其节约大量的人力,想一下,以前配音,不同的音色、角色需要不同的人来完成&…...
tomcat安装及配置教程
以下是 Tomcat 安装及配置的基本步骤: 下载 Tomcat 并解压缩:在 Apache Tomcat 的官网上下载最新版本的 Tomcat,然后解压缩到你想要安装的目录下(比如 /usr/local/tomcat)。 配置 PATH 环境变量:在终端中打…...
UNIPOSE: DETECTING ANY KEYPOINTS(2023.10.12)
文章目录 AbstractIntroduction现有的方法存在哪些不足基于此,我们提出了哒哒哒取得惊人的成绩Related Work MethodMULTI -MODALITY PROMPTS ENCODING(多模态提示编码)Textual Prompt Encoder(文本提示编码器)Visual P…...
如何用ChatGPT快速写出一份合格的PPT报告
我们【AI写稿专家】的小伙伴中有很多企业高管和公务员,大家经常有写报告写ppt的需求,下面小编给大家介绍一下我们新发布生成PPT的功能,很简单很方便,看完大家不到1分钟就能生成一份拿得出手的PPT报告,再也不用费尽心思…...
Linux内存管理的分页机制
分段机制的原理如下: 分段机制下的虚拟地址由两部分组成,段选择子和段内偏移量。段选择子就保存在段寄存器里面。段选择子里面最重要的是段号,用作段表的索引。段表里面保存的是这个段的基地址、段的界限和特权等级等。虚拟地址中的段内偏移量…...
Unity DOTS系列之托管/非托管Component的区别与性能分析
最近DOTS发布了正式的版本, 我们来分享一下DOTS里面托管与非托管Component的区别与性能分析,方便大家上手学习掌握Unity DOTS开发。托管与非托管的区别在于是不是基于自动垃圾回收的。托管是由垃圾回收器来负责自动回收,非托管需要我们手动来做相关内存管…...
elementui el-upload 上传文件
文章目录 前言一、Html2.上传 总结 前言 在使用element中的el-upload上传文件或者图片时,需要先把el-upload的自动上传改为手动上传:auto-upload“false”然后el-upload内部会调用this.$refs.upload.submit();方法,从而实现多个文件上传。 提示…...
Python图像处理【15】基于非锐化掩码锐化图像
基于非锐化掩码锐化图像 0. 前言1. 使用 scikit-image filters 模块执行非锐化掩码2. 使用 PIL ImageFilter 模块执行非锐化掩码3. 使用 SimpleITK 执行拉普拉斯锐化4. 使用 OpenCV 实现非锐化掩码小结系列链接 0. 前言 非锐化滤波器是一个简单的锐化算子,通过从原…...
介绍几款Linux 下终极SSH客户端
安全外壳协议(Secure Shell,简称 SSH)是一种网络连接协议,允许您通过网络远程控制计算机。特别是在Linux命令行模式下,使用SSH,可以很方便管理linux上的运维工作。以下是一些最受欢迎的Linux SSH客户端&…...
项目综合实训,vrrp+bfd,以及策略路由的应用
目录 一. 项目需求 二. Visio设备画图 三. 设备选型 三.vlan规划 四.Ip地址规划 五.实验拓扑图 六.配置过程及结果 项目需求 1.S1作为VLAN10的主网关和根桥,S2作为v…...
[架构之路-246/创业之路-77]:目标系统 - 纵向分层 - 企业信息化的呈现形态:常见企业信息化软件系统 - 客户关系管理系统CRM
目录 前言: 一、企业信息化的结果:常见企业信息化软件 1.1 客户关系管理系统CRM 1.1.1 什么是客户关系管理系统 1.1.2 CRM总体架构 1.1.3 什么类型的企业需要CRM 1.1.4 创业公司在什么阶段需要CRM 1.1.5 研发型创业公司什么时候需要CRM 1.1.6 C…...
python manage.py createsuperuser运行错误
我把思念作笺,随风而去,落在你常路过的那个街角… 错误复现 PS D:\教学文件\Django\djangoProject\webDemo02> python manage.py createsuperuser System check identified some issues:WARNINGS: ?: (urls.W005) URL namespace admin isnt unique…...
解决恶意IP地址攻击:保卫网络安全的有效方法
随着互联网的发展,网络安全威胁变得日益复杂,其中包括恶意IP地址攻击。这些攻击通常是网络犯罪分子的手段之一,用于入侵系统、窃取数据或进行其他恶意活动。本文将探讨如何解决恶意IP地址攻击,以保护网络安全。 恶意IP地址攻击是…...
Android WMS——WMS窗口添加(十)
Android 的 WMS(Window Manager Service)是一个关键组件,负责管理窗口的创建、显示、布局和交互等。Window 的操作有两大部分,一部分是 WindowManager 来处理,一部分是 WMS 来处理,如下图所示: …...
CVPR 2023 | 主干网络FasterNet 核心解读 代码分析
本文分享来自CVPR 2023的论文,提出了一种快速的主干网络,名为FasterNet。 论文提出了一种新的卷积算子,partial convolution,部分卷积(PConv),通过减少冗余计算和内存访问来更有效地提取空间特征。 创新在于部分卷积…...
【进阶C语言】数组笔试题解析
本节内容以刷题为主,大致目录: 1.一维数组 2.字符数组 3.二维数组 学完后,你将对数组有了更全面的认识 在刷关于数组的题目前,我们先认识一下数组名: 数组名的意义:表示数组首元素的地址 但是有两个例外…...
vue-router学习(四) --- 动态添加路由
我们一般使用动态添加路由都是后台会返回一个路由表前端通过调接口拿到后处理(后端处理路由)。比如不同权限显示不同的路由。 主要使用的方法就是router.addRoute 添加路由 动态路由主要通过两个函数实现。router.addRoute() 和 router.removeRoute()。它们只注册一个新的路…...
科东软件受邀参加2023国家工业软件大会,共话工业软件未来
10月28日,由中国自动化学会主办的2023国家工业软件大会在浙江湖州开幕。大会以“工业软件智造未来”为主题,一批两院院士、千余名专家学者齐聚一堂,共同探讨工业软件领域前沿理论和技术创新应用问题,共同谋划我国工业软件未来发展…...
ros启动节点的launch文件你真的会写吗?
<launch><!-- 启动节点 --><node name="lidar_data_feature_detection_node" pkg="lidar_data_feature_detection" type="lidar_data_feature_detection" output="screen" />...
智能访客系统(线上访客预约、线下访客机),提供从访客预约、身份核验、现场登记到联动(闸机、门禁、梯控、车牌识别停车场等出入口)通行的一站式智能化管理解决方案,实现访客全程可追溯、通行更便捷、管理更高效
智能访客系统技术方案第一章 系统概述1.1 项目背景随着智慧楼宇、智慧园区、智慧社区建设的深入推进,传统的访客管理模式已难以满足现代安全管理与高效通行的双重需求。传统人工登记方式存在效率低、数据易丢失、安全隐患大等问题。本方案基于智能访客系统ÿ…...
python kics
## 关于 Python KICS,一次不那么官方的漫谈 最近在几个基础架构和安全相关的项目里,又遇到了那个老生常谈的问题:如何在代码部署前,就发现那些隐藏在基础设施即代码(IaC)配置里的安全隐患?像 Te…...
Gemini出点问题-----解决
遇到这个问题,网址栏目输入 后面加上 /gems/createwww.gemini.com/gems/create命个名字就好了 ,点击左上角的报错,就开启新对话了 基本跟什么服务地址,ip干净不干净没啥关系(我都试过了),…...
Paper 深读 | LLM驱动的多智能体分层决策新范式
**🔑 关键词:**分层决策、LLM规划、Bandit探索、多智能体导航 **🔥 一句话标签:**首创"LLMBandit分布式RL"三层自治体系,显著提升多智能体复杂任务的规划、探索与协作效率 02 一句话核心思想 针对多智能体…...
别再只用PBKDF2了!聊聊国密标准GMT0091里的SM4和HMAC-SM3怎么用
国密算法实战:从PBKDF2到HMAC-SM3与SM4-CBC的迁移指南 金融级应用开发中,密钥派生与数据加密方案的选择直接影响系统安全性。当项目需要满足国密标准合规要求时,开发者常面临从国际通用算法向SM系列算法迁移的技术挑战。本文将手把手演示如何…...
01华夏之光永存:自主产权国产大模型开源(8篇)
华夏之光永存:华夏本源大模型 —— 开源序言暨全系列目录 本系列为华夏本源大模型原创技术开源系列文章,全文严格遵循人工智能行业主流工程技术规范,无玄学、无超标、无虚假技术、无侵权、无违规表述。所有公开内容均为当前主流大模型可理解、…...
CSS 中实现同类型兄弟元素悬停联动效果(如所有红色行同时高亮)
本文介绍如何利用 css :has() 伪类实现“悬停任一同类元素时,所有同类型兄弟元素同步响应样式变化”,无需 javascript,纯 css 可控,适用于分组高亮等交互场景。 本文介绍如何利用 css :has() 伪类实现“悬停任一同类元素时&a…...
ThinkPHP5常见问题及解决方案
关于 THINKPHP 5 框架的答疑,请具体描述您遇到的问题(例如:路由配置、模型操作、模板渲染、扩展机制等)。以下常见方向供参考:路由问题自定义路由规则失效RESTful 接口配置冲突路由参数解析异常数据库操作模型关联查询…...
猫抓Cat-Catch:终极网页资源嗅探与下载解决方案
猫抓Cat-Catch:终极网页资源嗅探与下载解决方案 【免费下载链接】cat-catch 猫抓 浏览器资源嗅探扩展 / cat-catch Browser Resource Sniffing Extension 项目地址: https://gitcode.com/GitHub_Trending/ca/cat-catch 你是否曾为无法保存心爱的在线视频而烦…...
Qt网络请求的‘收件箱’:QNetworkReply信号与槽的保姆级实战指南
Qt网络请求的‘收件箱’:QNetworkReply信号与槽的保姆级实战指南 想象一下,你每天打开电子邮箱时,系统会自动分类新邮件:重要通知、广告推广、文件附件...而Qt中的QNetworkReply正是这样一个智能收件箱,它能自动分类网…...
