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

Java 基础-31-枚举-认识枚举

在Java编程语言中,枚举(Enum)是一种特殊的类,它允许一组固定的常量。它们非常适合用来表示一组固定的值,比如星期几、季节、颜色等。枚举自Java 5开始引入,为定义常量提供了一种更强大和方便的方式。本文将带你了解什么是枚举以及如何在Java中使用它们。

枚举的基本概念

枚举类型是一种特殊的数据类型,它允许变量成为一组预定义的常量。使用枚举可以减少代码中的错误,因为它们限制了变量只能是预先定义好的值之一。

定义一个简单的枚举

定义枚举很简单,使用enum关键字即可:

enum Day {SUNDAY, MONDAY, TUESDAY, WEDNESDAY,THURSDAY, FRIDAY, SATURDAY
}

上面的代码定义了一个名为Day的枚举,它包含了七个实例,分别代表一周中的每一天。

使用枚举

定义好枚举后,你可以在switch语句中使用它们来执行不同的操作,例如:

public class EnumDemo {Day day;public EnumDemo(Day day) {this.day = day;}public void tellItLikeItIs() {switch (day) {case MONDAY:System.out.println("Mondays are bad.");break;case FRIDAY:System.out.println("Fridays are better.");break;case SATURDAY:case SUNDAY:System.out.println("Weekends are best.");break;default:System.out.println("Midweek days are so-so.");break;}}public static void main(String[] args) {EnumDemo firstDay = new EnumDemo(Day.MONDAY);firstDay.tellItLikeItIs();EnumDemo thirdDay = new EnumDemo(Day.WEDNESDAY);thirdDay.tellItLikeItIs();}
}
枚举的高级用法

除了基本的使用方法,枚举还可以包含构造函数、方法、字段等,使得它们更加灵活和强大。例如:

enum Planet {MERCURY (3.303e+23, 2.4397e6),VENUS   (4.869e+24, 6.0518e6),EARTH   (5.976e+24, 6.37814e6),MARS    (6.421e+23, 3.3972e6);private final double mass;   // in kilogramsprivate final double radius; // in metersPlanet(double mass, double radius) {this.mass = mass;this.radius = radius;}public double mass() { return mass; }public double radius() { return radius; }// universal gravitational constant  (m3 kg-1 s-2)public static final double G = 6.67300E-11;public double surfaceGravity() {return G * mass / (radius * radius);}
}

在这个例子中,我们为每个行星添加了质量、半径属性,并提供了计算表面重力的方法。

总结

通过这篇文章,你应该对Java中的枚举有了基础的认识。枚举是一个非常有用的功能,能够帮助开发者编写更清晰、更安全的代码。无论是简单的还是复杂的场景,枚举都能提供有效的解决方案。希望这篇介绍能激发你进一步探索枚举的兴趣,并将其应用到你的项目中。

相关文章:

Java 基础-31-枚举-认识枚举

在Java编程语言中,枚举(Enum)是一种特殊的类,它允许一组固定的常量。它们非常适合用来表示一组固定的值,比如星期几、季节、颜色等。枚举自Java 5开始引入,为定义常量提供了一种更强大和方便的方式。本文将…...

7.4 SVD 的几何背景

一、SVD 的几何解释 SVD 将矩阵分解成三个矩阵的乘积: ( 正交矩阵 ) ( 对角矩阵 ) ( 正交矩阵 ) (\pmb{正交矩阵})\times(\pmb{对角矩阵})(\pmb{正交矩阵}) (正交矩阵)(对角矩阵)(正交矩阵),用几何语言表述其几何背景: ( 旋转 ) ( 伸缩 )…...

低延迟云网络的核心技术

低延迟云网络通过架构优化、协议创新、硬件加速等多维度技术手段,将数据传输延迟降低至毫秒级甚至微秒级。 1. 网络架构优化 1.1 扁平化网络Leaf-Spine 架构 减少网络层级,缩短数据转发路径(如数据中心内部一跳可达)。 扁平化网络Leaf-Spine(叶子-脊椎)架构是一种现代…...

C++的多态-上

目录 多态的概念 多态的定义及实现 1.虚函数 2. 多态的实现 2.1.多态构成条件 2.2.虚函数重写的两个例外 (1)协变(基类与派生类虚函数返回值类型不同) (2)析构函数的重写(基类与派生类析构函数的名字不同) 2.3.多态的实现 2.4.多态在析构函数中的应用 2.5.多态构成条…...

内存与显存:从同根生到殊途异路的科技演进

在现代计算机的世界里,内存和显存是两个不可或缺的硬件组件。它们看似功能相近,却在发展历程中逐渐分道扬镳,各自服务于不同的计算需求。今天,我们将从一根内存条和一块显卡入手,深入探讨内存与显存的异同,…...

手搓多模态-04 归一化介绍

在机器学习中,归一化是一个非常重要的工具,它能帮助我们加速训练的速度。在我们前面的SiglipVisionTransformer 中,也有用到归一化层,如下代码所示: class SiglipVisionTransformer(nn.Module): ##视觉模型的第二层&am…...

【C++】第八节—string类(上)——详解+代码示例

hello,又见面了! 云边有个稻草人-CSDN博客 C_云边有个稻草人的博客-CSDN博客——C专栏(质量分高达97!) 菜鸟进化中。。。 目录 一、为什么要学习string类? 1.1 C语言中的字符串 1.2 面试题(暂不做讲解) …...

Java 数组与 ArrayList 核心区别解析:从源码到实战!!!

🌟 Java 数组与 ArrayList 核心区别解析:从源码到实战 💡 Java 开发者必读! 数组(Array)和 ArrayList 是 Java 中最常用的数据存储结构,但它们的底层设计、性能表现和适用场景差异显著。本文通…...

【易飞】易飞批量选择品号处理方法,工作效率提升300%

开窗选择品号方式要么手动输入,要么以什么开头、包含、从A物料到B物料查询后返回的有规律的品号。对于没有规律且大量品号的处理方式是否有便捷的方法呢? 尤其在通常在查询多阶材料清单,查询库存明细表,整批变更元件等如品号无规律情况下,只能一个个选择,无法通过EXCEL方…...

【最新版】啦啦外卖v64系统独立版源码+全部小程序APP端+安装教程

一.系统介绍 啦啦外卖跑腿平台独立版,使用的都知道该系统功能非常强大,应该说是目前外卖平台功能最全的一套系统。主要是功能非常多,拿来即用,包括客户端小程序、配送端小程序、商户端小程序,还有对应四个端的APP源码…...

iproute2 工具集使用详解

目录 一、iproute2 核心命令:ip二、常用功能详解1. 管理网络接口(link 对象)2. 管理 IP 地址(address 对象)3. 管理路由表(route 对象)4. 管理 ARP 和邻居缓存(neigh 对象&#xff0…...

项目总结之常问的一些问题

1.项目功能介绍,重难点 重难点: mock工具使用(涉及到的三方接口过多,由于网络等原因无法调通,所以测试的时候,采用mock工具来模拟返回接口真正调用后响应数据) 2.项目负责哪部分?…...

C语言查漏补缺:占位符篇

占位符篇 1. 整数类型2. 字符类型3. 浮点数类型4. 指针类型5. 字符串6. 修饰符 1. 整数类型 %d / %i:用于 int(有符号十进制整数)。int num -42; printf("%d", num); // 输出: -42%u:用于 unsigned int(无…...

cut命令用法

cut 是 Linux/Unix 系统中一个用于按列提取文本内容的命令,常用于处理结构化文本(如 CSV、日志、配置文件等)。它通过分隔符、字符位置或字节位置来切割文本,提取指定部分。 核心功能 按字段(列)提取&#…...

java 正则表达式优化

1,什么是正则表达式 正则表达式使用一些特定的元字符来检索、匹配以及替换符合规则的字符串。 构造正则表达式语法的元字符,由普通字符、标准字符、限定字符(量词)、定位字符(边界字符)组成 普通字符 字母[…...

AD(Altium Designer)更换PCB文件的器件封装

一、确定是否拥有想换的器件PCB封装 1.1 打开现有的原理图 1.2 确定是否拥有想换的器件PCB文件 1.2.1 如果有 按照1.3进行切换器件PCB封装 1.2.2 如果没有 按照如下链接进行添加 AD(Altium Designer)已有封装库的基础上添加器件封装-CSDN博客https://blog.csdn.net/XU15…...

【文献研究】含硼钢中BN表面偏析对可镀性的影响

《B 添加钢的溶融 Zn めっき性に及ぼす BN 表面析出の影響》由JFE公司田原大輔等人撰写。研究聚焦 B 添加钢在低露点退火时 BN 形成对镀锌性的影响,对汽车用高强度钢镀锌工艺优化意义重大。通过多组对比实验,结合多种分析手段,明确了相关因素…...

React学习-css

W3Schools Tryit Editor CSS 教程 CSS 规则由两个主要的部分构成:选择器,以及一条或多条声明: p { /* 这是个注释 */ color:red; text-align:center; }选择器 CSS Id: #para1{ text-align:center; color:red; } Class: .center {text-align:center;} p…...

AIP-215 API特定proto

编号215原文链接AIP-215: API-specific protos状态批准创建日期2018-10-01更新日期2018-10-01 API通常使用API特定proto定义,偶尔依赖通用组件。保持API相互隔离可以避免版本问题和客户端库打包问题。 指南 所有特定于某个API的protos 必须 位于带有主版本号的包…...

C++ 获取一整行(一行)字符串并转换为数字

代码很简单&#xff0c;主要是自己总是忘记&#xff0c;记录一下&#xff1a; #include <iostream> #include <cstdlib> #include <cstring>#include <string> #include <vector> #include <sstream>using namespace std;void print_int_…...

数据分析-Excel-学习笔记Day1

Day1 复现报表聚合函数&#xff1a;日期联动快速定位区域SUMIF函数SUMIFS函数环比、同比计算IFERROR函数混合引用单元格格式总结汇报 拿到一个Excel表格&#xff0c;首先要看这个表格的构成&#xff08;包含了哪些数据&#xff09;&#xff0c;几行几列&#xff0c;每一列的名称…...

树莓派PICO 设备烧录成cmsis dap

文章目录 1. 实际操作2. IO连接 1. 实际操作 2. IO连接...

【数据结构】图的存储

目录 邻接矩阵 表示方法 代码定义 结构特点与度的信息 邻接表 表示方法 代码定义 结构特点与度的信息 十字链表 表示方法 第二步&#xff0c;将顶点x的firstIn域与所有headvex域为x的弧连起来。 结构特点与度的信息 邻接多重表 表示方法 结构特点与度的信息 图…...

如何解决uniapp打包安卓只出现功能栏而无数据的问题

如何解决uniapp打包安卓只出现功能栏而无数据的问题 经验来自&#xff1a;关于Vue3中调试APP触发异常&#xff1a;exception:white screen cause create instanceContext failed,check js stack -> at useStore (app-service.js:2309:15)解决方案 - 甲辰哥来帮你算命 - 博客…...

kotlin,数字滚动选择

用国内的通义灵码和codegeex都没有弄出来&#xff0c;最后只得用墙外的chatgpt才弄出一个满意的。kotlin真的有点难&#xff0c;好在有AI&#xff0c;让学习没这难了。 package com.example.mynumsetimport android.os.Bundle import androidx.activity.ComponentActivity imp…...

【4】搭建k8s集群系列(二进制部署)之安装master节点组件(kube-apiserver)

一、下载k8s二进制文件 下载地址&#xff1a; https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOG -1.20.md 注&#xff1a;打开链接你会发现里面有很多包&#xff0c;下载一个 server 包就够了&#xff0c;包含了 Master 和 Worker Node 二进制文件。…...

每日c/c++题 备战蓝桥杯(小球反弹)[镜像思路求解,最小公倍数]

思路&#xff1a; 错解&#xff1a;对于这道题而言&#xff0c;有的同学会选择用计算每次碰撞的坐标&#xff0c;直到坐标等于原点的方法来做&#xff0c;但这种方法实现起来比较繁琐&#xff0c;并且由于碰撞点的坐标有可能是浮点数&#xff0c;而浮点数会丢失精度&#xff0…...

新潮透明液体水珠水滴失真故障扭曲折射特效海报字体标题设计ps样机动作素材 Bubble Photoshop Templates

只需单击几下即可创建引人注目的视觉效果&#xff01;您需要做的就是将您的文本或图像放入智能对象中并应用作。 包中包含&#xff1a; 15 个静态 Photoshop 模板&#xff08;PS 2019 及更高版本&#xff09; 01-05 垂直布局 &#xff08;22504000&#xff09;06-10 水平布局…...

谷歌洽谈租赁英伟达AI服务器:算力争夺战再升级

近日&#xff0c;全球科技巨头谷歌被曝正与英伟达&#xff08;NVIDIA&#xff09;洽谈租赁AI服务器&#xff0c;这一动态引发了行业广泛关注。若合作达成&#xff0c;谷歌将借助英伟达的高性能GPU进一步强化其AI算力储备&#xff0c;同时也折射出当前AI竞赛中算力资源的战略重要…...

从零开始玩python--python版植物大战僵尸来袭

大家好呀&#xff0c;小伙伴们&#xff01;今天要给大家介绍一个超有趣的Python项目 - 用pygame制作植物大战僵尸游戏的进阶版本。相信不少小伙伴都玩过这款经典游戏&#xff0c;今天我们就用Python来实现它&#xff0c;让编程学习变得更加有趣&#xff01;&#x1f31f; 一、…...