Java枚举类
1.枚举
1.1概述【理解】
为了间接的表示一些固定的值,Java就给我们提供了枚举 是指将变量的值一一列出来,变量的值只限于列举出来的值的范围内
1.2定义格式【应用】
-
格式
public enum s { 枚举项1,枚举项2,枚举项3; } 注意: 定义枚举类要用关键字enum -
示例代码
// 定义一个枚举类,用来表示春,夏,秋,冬这四个固定值 public enum Season {SPRING,SUMMER,AUTUMN,WINTER; }
1.3枚举的特点【理解】
-
特点
-
所有枚举类都是Enum的子类
-
我们可以通过"枚举类名.枚举项名称"去访问指定的枚举项
-
每一个枚举项其实就是该枚举的一个对象
-
枚举也是一个类,也可以去定义成员变量
-
枚举类的第一行上必须是枚举项,最后一个枚举项后的分号是可以省略的,但是如果枚举类有其他的东西,这个分号就不能省略。建议不要省略
-
枚举类可以有构造器,但必须是private的,它默认的也是private的。
枚举项的用法比较特殊:枚举("");
-
枚举类也可以有抽象方法,但是枚举项必须重写该方法
-
-
枚举类的第一行只能罗列一些名称,这些名称都是常量,并且每个常量记住的都是枚举类的一个对象。
-
枚举类的构造器都是私有的(写不写都只能是私有的),因此,枚举类对外不能创建对象。
-
枚举都是最终类,不可以被继承。
-
枚举类中,从第二行开始,可以定义类的其他各种成员,
-
编译器为枚举类新增了几个方法,并且枚举类都是继承:java.lang.Enum类的,从enum类也会继承到一些方法。
-
-
示例代码
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) {/*1.所有枚举类都是Enum的子类2.我们可以通过"枚举类名.枚举项名称"去访问指定的枚举项3.每一个枚举项其实就是该枚举的一个对象4.枚举也是一个类,也可以去定义成员变量5.枚举类的第一行上必须是枚举项,最后一个枚举项后的分号是可以省略的,但是如果枚举类有其他的东西,这个分号就不能省略。建议不要省略6.枚举类可以有构造器,但必须是private的,它默认的也是private的。枚举项的用法比较特殊:枚举("");7.枚举类也可以有抽象方法,但是枚举项必须重写该方法*///第二个特点的演示//我们可以通过"枚举类名.枚举项名称"去访问指定的枚举项System.out.println(Season.SPRING);System.out.println(Season.SUMMER);System.out.println(Season.AUTUMN);System.out.println(Season.WINTER);//第三个特点的演示//每一个枚举项其实就是该枚举的一个对象Season spring = Season.SPRING;} }
1.4枚举的方法【应用】
-
方法介绍
方法名 说明 String name() 获取枚举项的名称 int ordinal() 返回枚举项在枚举类中的索引值 int compareTo(E o) 比较两个枚举项,返回的是索引值的差值 String toString() 返回枚举常量的名称 static <T> T valueOf(Class<T> 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枚举类
1.枚举 1.1概述【理解】 为了间接的表示一些固定的值,Java就给我们提供了枚举 是指将变量的值一一列出来,变量的值只限于列举出来的值的范围内 1.2定义格式【应用】 格式 public enum s { 枚举项1,枚举项2,枚举项3; } 注意: 定义枚举类要用关键字enum 示例代…...
kubenetes/kubesphere搭建报错
一、prometheus问题 1.kubesphere 安装 prometheus-k8s 报以下错误: MountVolume.SetUp failed for volume "secret-kube-etcd-client-certs" : secret "kube-etcd-client-certs" not found 原因是:kube-etcd-client-certs 这个证…...
分享几个办公类常用的AI工具
办公类 WPS AI讯飞智文iSlideProcessOn亿图脑图ChatPPT WPS AI 金山办公推出的协同办公 AI 应用,具有文本生成、多轮对话、润色改写等多种功能,可以辅助用户进行文档编辑、表格处理、演示文稿制作等办公操作。 https://ai.wps.cn/ 讯飞智文 科大讯飞推…...
Vue入门示例
今天滴学习目标!!! 示例简介HTML内容主体区域输入框列表区域统计和清空 JS引入Vue.js库定义Vue实例el选项data选项methods选项 示例简介 HTML内容 本次实例讲解的是v-for、v-on、v-model来写这小小的实例,下面是实例的效果图&am…...
鸿蒙开发:实现全局异常捕获和异常查看
前言 开发中的异常信息,我们很容易排查,直接可以在控制台中就可以查看,但是,提交给测试同学或者上线后的异常信息,我们如何获取呢?这里我们很容易想起,三方sdk,比如常见的腾讯Bugly…...
Git和GitHub Desktop(Git客户端工具)下载安装教程
不说废话,直接开始。下载网址:https://git-scm.com/ 一.GIT下载 1.点击downloads 2.自己选择自己需要配置的版本 我是windows,所以选择的windows版本的安装 3.根据自己电脑的系统下载软件 我的是64位,选择64位安装 ps :下载很慢…...
Linux经常使用命令汇总和总结
Linux经常使用命令汇总和总结 文章目录 Linux经常使用命令汇总和总结一、基本命令二、目录操作命令三、文件操作命令四、压缩文件操作五、查找命令六、su、sudo七、系统服务八、网络管理九、定时任务指令crontab 配置十、其他命令 一、基本命令 1.1 关机和重启 关机 shutdown …...
three.js 灯光
环境光探针(AmbientLightProbe) 光照探针是一种在3D场景中添加光源的另一种方法。 AmbientLightProbe 是场景中单个环境光的光照估算数据。 有关光照探针的更多信息,请转到 LightProbe 。 构造函数 AmbientLightProbe( color : Color, int…...
ELK日志收集
目前,各个微服务系统的日志都保存在各自指定的目录中,如果这些微服务部署在不同的服务器上,那么日志文件也是分散在各自的服务器上。分散的日志不利于我们快速通过日志定位问题,我们可以借助ELK来收集各个微服务系统的日志并集中展…...
常见docker命令
1、查询已安装docker中某个image依赖包 docker run -it --rm --name my-python-container 【python37:v001】 /bin/bash 【】改成自己环境名字 docker run -it --name lane python37_test:v006 /bin/bash lane是容器名字,python37_test:v006 是镜像名 开启容器 do…...
测试新人刚入行,该如何规划以后的发展路径?
作为一个刚入行的测试新人,应该如何规划自己的职业发展路径?如何规划自己的技术路线?软件测试的段位都有哪些?他们之间的薪资差异如何? 听说这些问题,是目前想要入行软件测试的同学们最关心的。那么我们今…...
Boosting Object Detection with Zero-Shot Day-Night Domain Adaptation
摘要:低亮度场景检测是一个小众且重要的方向,首先在于数据集和过往的研究都集中在光照充足的环境下,其次如果使用传统的训练方法的话由于训练难度大,模型效果也不会很好,有幸的是,现在关于低亮度的研究已经…...
Chromium html<lable>c++接口定义
HTML <label> 元素(标签)表示用户界面中某个元素的说明。 1、<label> 在html_tag_names.json5中接口定义: (third_party\blink\renderer\core\html\html_tag_names.json5) {name: "label",inte…...
QT中中文显示乱码问题
在VS2013中用QT开发GUI应用程序,Qt中显示中文乱码 一: //解决QT中中文显示乱码问题 #pragma execution_character_set("utf-8") 二:在main函数中添加以下代码: #include <QTextCodec>void main() {QTextCod…...
[面试常见]Javascript基础知识
#1024程序员节|征文# Object.assign 和对象扩展运算符有什么区别?是深拷贝还是浅拷贝? 都进行浅拷贝,只赋值对象的第一层属性,而不会递归复制整个对象结构 **const mergedObj Object.assign({},obj1,obj2) JavaScript 中 Map 和 Object 的区别是什么?…...
使用注解@ExcelIgnoreUnannotated实现了在导出 Excel 时忽略没有被标注的字段
ExcelIgnoreUnannotated 注解用于在使用 Apache POI 或其他 Excel 处理库时,指示在导出 Excel 时忽略没有被标注的字段。这意味着只有被特定注解(如 ExcelProperty)标注的字段会被处理和导出。 作用 简化导出过程:只导出需要的字…...
线程的同步
目录 引入 认识条件变量 快速认识接口编辑 认识条件变量编辑 测试代码编辑 生产消费模型 为何要使用生产者消费者模型 理解 编写生产消费模型 BlockingQueue 单生产单消费 多生产多消费 引入 同步:在保证数据安全的前提下,让线程…...
【启明智显分享】ZX7981PG/ZX7981PM融入官方OpenWrt,启明智显SDK/官方OpenWrt任由选择!
好消息!好消息!启明智显ZX7981PG和ZX7981PM正式融入官方 OpenWrt 的大家庭啦!现在开发者不仅可以基于启明智显的SDK进行二次开发,还可以直接应用官方OpenWrt以及我们的开源资料进行开发! 借助OpenWrt的强大生态&…...
如何用java发送包含表格形式的邮件
问题: 如何用java发送包含表格形式的邮件? 方法: 发用freemaker工具来替换html的表格变量,从而动态生成了html。然后再发送这个html格式(不能用纯文本)文本即可。 优化流程: 1、准备模板&#x…...
讲个故事:关于一次接口性能优化的心里路程
这是一个程序猿写的第一个故事,请各位懂行的客官静下心来,慢慢品读。就知道我为什么要单独写一个文章来记录这次过程了,因为实在是太坎坷了...... 背景介绍 近期项目投产时遇到一个问题,投产后在验证时发现大部分用户系统登…...
Python|GIF 解析与构建(5):手搓截屏和帧率控制
目录 Python|GIF 解析与构建(5):手搓截屏和帧率控制 一、引言 二、技术实现:手搓截屏模块 2.1 核心原理 2.2 代码解析:ScreenshotData类 2.2.1 截图函数:capture_screen 三、技术实现&…...
关于nvm与node.js
1 安装nvm 安装过程中手动修改 nvm的安装路径, 以及修改 通过nvm安装node后正在使用的node的存放目录【这句话可能难以理解,但接着往下看你就了然了】 2 修改nvm中settings.txt文件配置 nvm安装成功后,通常在该文件中会出现以下配置&…...
【Zephyr 系列 10】实战项目:打造一个蓝牙传感器终端 + 网关系统(完整架构与全栈实现)
🧠关键词:Zephyr、BLE、终端、网关、广播、连接、传感器、数据采集、低功耗、系统集成 📌目标读者:希望基于 Zephyr 构建 BLE 系统架构、实现终端与网关协作、具备产品交付能力的开发者 📊篇幅字数:约 5200 字 ✨ 项目总览 在物联网实际项目中,**“终端 + 网关”**是…...
CMake 从 GitHub 下载第三方库并使用
有时我们希望直接使用 GitHub 上的开源库,而不想手动下载、编译和安装。 可以利用 CMake 提供的 FetchContent 模块来实现自动下载、构建和链接第三方库。 FetchContent 命令官方文档✅ 示例代码 我们将以 fmt 这个流行的格式化库为例,演示如何: 使用 FetchContent 从 GitH…...
AspectJ 在 Android 中的完整使用指南
一、环境配置(Gradle 7.0 适配) 1. 项目级 build.gradle // 注意:沪江插件已停更,推荐官方兼容方案 buildscript {dependencies {classpath org.aspectj:aspectjtools:1.9.9.1 // AspectJ 工具} } 2. 模块级 build.gradle plu…...
今日学习:Spring线程池|并发修改异常|链路丢失|登录续期|VIP过期策略|数值类缓存
文章目录 优雅版线程池ThreadPoolTaskExecutor和ThreadPoolTaskExecutor的装饰器并发修改异常并发修改异常简介实现机制设计原因及意义 使用线程池造成的链路丢失问题线程池导致的链路丢失问题发生原因 常见解决方法更好的解决方法设计精妙之处 登录续期登录续期常见实现方式特…...
微软PowerBI考试 PL300-在 Power BI 中清理、转换和加载数据
微软PowerBI考试 PL300-在 Power BI 中清理、转换和加载数据 Power Query 具有大量专门帮助您清理和准备数据以供分析的功能。 您将了解如何简化复杂模型、更改数据类型、重命名对象和透视数据。 您还将了解如何分析列,以便知晓哪些列包含有价值的数据,…...
10-Oracle 23 ai Vector Search 概述和参数
一、Oracle AI Vector Search 概述 企业和个人都在尝试各种AI,使用客户端或是内部自己搭建集成大模型的终端,加速与大型语言模型(LLM)的结合,同时使用检索增强生成(Retrieval Augmented Generation &#…...
C/C++ 中附加包含目录、附加库目录与附加依赖项详解
在 C/C 编程的编译和链接过程中,附加包含目录、附加库目录和附加依赖项是三个至关重要的设置,它们相互配合,确保程序能够正确引用外部资源并顺利构建。虽然在学习过程中,这些概念容易让人混淆,但深入理解它们的作用和联…...
Razor编程中@Html的方法使用大全
文章目录 1. 基础HTML辅助方法1.1 Html.ActionLink()1.2 Html.RouteLink()1.3 Html.Display() / Html.DisplayFor()1.4 Html.Editor() / Html.EditorFor()1.5 Html.Label() / Html.LabelFor()1.6 Html.TextBox() / Html.TextBoxFor() 2. 表单相关辅助方法2.1 Html.BeginForm() …...
