java中的枚举

枚举

枚举类型的概述

  • 关键字:enum

  • 你可以把枚举类型理解成是一个自定义的常量的序列

枚举的语法结构

定义的枚举类型文件

package com.it.xiaosi.demo01;/*** @Classname : direction* @Description : TODO 枚举* @Author : lin_refuel@qq.com*/
public enum direction {// 四个常量UP,LIFT,DOWN,RIGHT;
}

测试类 - 访问上面的枚举类型

package com.it.xiaosi.demo01;/*** @Classname : test* @Description : TODO 测试类* @Author : lin_refuel@qq.com*/
public class test {public static void main(String[] args) {// 访问枚举里面的成员System.out.println(direction.DOWN);System.out.println(direction.UP);System.out.println(direction.RIGHT);System.out.println(direction.LIFT);System.out.println("=======================");// 枚举里面的每一个成员都相当于一个direction类型direction direction = null;direction = direction.UP;System.out.println(direction);}
}

运行结果:
在这里插入图片描述

完整的结构

枚举类

package com.it.xiaosi.demo02;/*** @Classname : direction* @Description : TODO* @Author : lin_refuel@qq.com*/public enum direction {// 四个常量UP("上边","方向信息"),LIFT("左边","方向信息"),DOWN("下边","方向信息"),RIGHT("右边","方向信息");// 枚举对象的无参数构造方法direction() {}// 定义两个成员变量private String ds;// 方向信息private String dd;// 方向 - 例如左direction(String ds, String dd) {this.ds = ds;this.dd = dd;}// 成员变量的get和setpublic String getDs() {return ds;}public void setDs(String ds) {this.ds = ds;}public String getDd() {return dd;}public void setDd(String dd) {this.dd = dd;}
}

测试类

package com.it.xiaosi.demo02;/*** @Classname : test* @Description : TODO* @Author : lin_refuel@qq.com*/
public class test {public static void main(String[] args) {// 调用枚举里面的成员,通过枚举类名字进行访问- 类似于访问静态变量 - 通过名字进行访问System.out.println(direction.DOWN);System.out.println(direction.UP);System.out.println(direction.LIFT);System.out.println(direction.RIGHT);System.out.println("==================");// 访问里面私有成员变量ds ddSystem.out.println(direction.RIGHT +"->"+direction.RIGHT.getDd()+":"+direction.RIGHT.getDs());}
}

运行结果:
在这里插入图片描述

枚举中常用的一些方法

枚举类

package com.it.xiaosi.demo03;/*** @Classname : direction* @Description : TODO* @Author : lin_refuel@qq.com*/
public enum Direction {// 定义出枚举里面列表UP("向上","w"),DOWN("向下","s"),LEFT("向左","a"),RIGHT("向右","d");// 定义两个成员变量private String info;// 方向信息private String data;// 对应的键位// 枚举的无参数构造方法Direction() {}// 枚举的带参数构造方法Direction(String info, String data) {this.info = info;this.data = data;}// 两个成员变量的get和setpublic String getInfo() {return info;}public void setInfo(String info) {this.info = info;}public String getData() {return data;}public void setData(String data) {this.data = data;}
}

测试类

package com.it.xiaosi.demo03;/*** @Classname : test* @Description : TODO 调用枚举中常用的构造方法* @Author : lin_refuel@qq.com*/
public class test {public static void main(String[] args) {// 访问Direction里面枚举项System.out.println(Direction.UP);// 运行结果 - UP// name() - 获取枚举项的名字System.out.println(Direction.UP.name());// 运行结果 - UPSystem.out.println("==========================");//ordinal - 获取里面枚举项的编号System.out.println(Direction.UP.ordinal());// 0System.out.println(Direction.DOWN.ordinal());// 1System.out.println(Direction.LEFT.ordinal());// 2System.out.println(Direction.RIGHT.ordinal());// 3System.out.println("==========================");// 获取枚举里面枚举项Direction up = Direction.valueOf("UP");// 获取到里面的UP枚举System.out.println(up); // UP// 获取一个枚举类型数组Direction[] values = Direction.values();for (Direction value : values) {System.out.println(value +"< = >" +value.ordinal()+":"+value.getInfo()+":"+value.getData());}}
}

枚举的应用场景

定义一个枚举类

package com.it.xiaosi.demo04;/*** @Classname : direction* @Description : TODO* @Author : lin_refuel@qq.com*/
public enum Direction {// 定义出枚举里面列表UP("向上","w"),DOWN("向下","s"),LEFT("向左","a"),RIGHT("向右","d");// 定义两个成员变量private String info;// 方向信息private String data;// 对应的键位// 枚举的无参数构造方法Direction() {}// 枚举的带参数构造方法Direction(String info, String data) {this.info = info;this.data = data;}// 两个成员变量的get和setpublic String getInfo() {return info;}public void setInfo(String info) {this.info = info;}public String getData() {return data;}public void setData(String data) {this.data = data;}
}

测试类

package com.it.xiaosi.demo04;import java.util.Scanner;/*** @Classname : DirectionTest* @Description : TODO* @Author : lin_refuel@qq.com*/
public class DirectionTest {public static void main(String[] args) {Direction direction = null;while (true) {switch (new Scanner(System.in).next()) {case "w":case "W":direction = Direction.UP;break;case "s":case "S":direction = Direction.DOWN;break;case "a":case "A":direction = Direction.LEFT;break;case "d":case "D":direction = Direction.RIGHT;break;}switch (direction) {case UP:System.out.println(direction.name()+ "<>" + direction.ordinal() +":" + direction.getInfo()+ "<==>" + direction.getData());break;case LEFT:System.out.println(direction+ "<>" + direction.ordinal() +":" + direction.getInfo()+ "<==>" + direction.getData());break;case DOWN:System.out.println(direction+ "<>" + direction.ordinal() +":" + direction.getInfo()+ "<==>" + direction.getData());break;case RIGHT:System.out.println(direction.name()+ "<>" + direction.ordinal() +":" + direction.getInfo()+ "<==>" + direction.getData());break;}}}
}

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

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

相关文章

[talib][python]ta-lib所有whl文件下载地址汇总

TA-Lib-0.4.28-cp312-cp312-win-amd64.whl下载地址&#xff1a;https://download.csdn.net/download/FL1623863129/88589956 ta-lib-0.4.25-cp311-cp311-win-amd64.whl下载地址&#xff1a;https://download.csdn.net/download/FL1623863129/88265329 TA-Lib-0.4.24-cp310-cp31…

springboot第56集:微服务框架,物联网IOT,SQL数据库MySQL底层,AOP收集业务操作日志架构周刊...

单点登录 1.配置代理信息 /*请求登陆的方法*/ "/modelLogin": {//本地服务接口地址&#xff0c;这是测试环境&#xff0c;正式环境需要更改下地址target: "http://127.0.0.1:6776/xxx-auth/",changeOrigin: true,pathRewrite: {"^/modelLogin": …

在ubuntu中制作ubuntu的U盘启动盘

概要&#xff1a; 本篇演示在ubuntu22.04中制作ubuntu22.04的U盘启动盘 一、下载ubuntu22.04的iso文件 访问ubuntu官网https://ubuntu.com自行下载ubuntu官网 二、制作U盘启动盘 打开系统自带软件Startup Disk Creator 软件会自动检测iso文件和U盘 点击Make Startup Disk…

【Java EE初阶十二】网络原理(二)

2. 传输层 2.2 TCP协议 2.2.2 关于可靠传输 4.滑动窗口 前面的三个机制&#xff0c;都是在保证 tcp 的可靠性&#xff1b; TCP 的可靠传输,是会影响传输的效率的.(多出了一些等待 ack 的时间,单位时间内能传输的数据就少了)&#xff1b; 滑动窗口,就让可靠传输对性能的影响,更…

MySQL数据库⑪_C/C++连接MySQL_发送请求

目录 1. 下载库文件 2. 使用库 3. 链接MySQL函数 4. C/C链接示例 5. 发送SQL请求 6. 获取查询结果 本篇完。 1. 下载库文件 要使用C/C连接MySQL&#xff0c;需要使用MySQL官网提供的库。 进入MySQL官网选择适合自己平台的mysql connect库&#xff0c;然后点击下载就行…

OpenMVG(计算两个球形图像之间的相对姿态、细化重建效果)

目录 1 Bundle Adjustment(细化重建效果) 2 计算两个球形图像之间的相对姿态 1 Bundle Adjustment(细化重建效果) 数

Day-02-02

Httpclient测试 安装HTTP Client插件 使用IDEA自带的http接口测试工具——HTTP Client Open in HTTP Client 生成测试用例 点击绿色箭头可以运行测试用例&#xff0c;控制台会输出结果。 保存和修改测试用例 在模块下新建一个api-test包用来存放测试用例&#xff0c;将生…

Packet content transfer stopped (received 8 bytes)

esp32烧录程序时报错&#xff1a;A fatal error occurred: Packet content transfer stopped (received 8 bytes) 解决方法&#xff1a; 降低上传速度&#xff0c;使用115200&#xff1b;更换flash模式&#xff0c;使用DIO方式重试如果还不行&#xff0c;检查flash连接情况&am…

P8 pair vector

pair是一个模板类&#xff0c;用于表示一对值的组合&#xff0c;用<utility>中 pair模板有两个模板参数&#xff0c;t1 t2&#xff0c;分别表示第一个值和第二个值类型 pair类有两个成员变量&#xff0c;frist和 cond,分别表示第一个值与第二个值 还有一些成员函数和…

failing dimm dimm location (uncorrectable memory component found)

开机界面出现这个 failing dimm dimm location (uncorrectable memory component found)“DIMM DIMM location. Uncorrectable memory component found” 是一条硬件故障信息&#xff0c;表明在服务器的某个特定双列直插式内存模块&#xff08;Dual In-line Memory Module, DI…

【漏洞复现】蓝网科技临床浏览系统信息泄露漏洞

Nx01 产品简介 蓝网科技临床浏览系统是一个专门用于医疗行业的软件系统&#xff0c;主要用于医生、护士和其他医疗专业人员在临床工作中进行信息浏览、查询和管理。 Nx02 漏洞描述 蓝网科技临床浏览系统存在信息泄露漏洞&#xff0c;攻击者可以利用该漏洞获取敏感信息。 Nx03…

深度学习基础之《TensorFlow框架(4)—Operation》

一、常见的OP 1、举例 类型实例标量运算add&#xff0c;sub&#xff0c;mul&#xff0c;div&#xff0c;exp&#xff0c;log&#xff0c;greater&#xff0c;less&#xff0c;equal向量运算concat&#xff0c;slice&#xff0c;splot&#xff0c;canstant&#xff0c;rank&am…

力扣72. 编辑距离(动态规划)

Problem: 72. 编辑距离 文章目录 题目描述思路复杂度Code 题目描述 思路 由于易得将字符串word1向word2转换和word2向word1转换是等效的&#xff0c;则我们假定统一为word1向word2转换&#xff01;&#xff01;&#xff01; 1.确定状态&#xff1a;我们假设现在有下标i&#x…

Python算法题集_随机链表的复制

Python算法题集_随机链表的复制 题138&#xff1a;随机链表的复制1. 示例说明2. 题目解析- 题意分解- 优化思路- 测量工具 3. 代码展开1) 标准求解【双层循环】2) 改进版一【字典哈希】3) 改进版二【单层哈希】4) 改进版三【递归大法】 4. 最优算法 本文为Python算法题集之一的…

Netty基本组件

编解码器 编码器 类作用MessageToByteEncoder将消息编码为字节MessageToMessageEncoder将一种消息编码为另一种消息 解码器 类作用ByteToMessageDecoder将字节解码为消息MessageToMessageDecoder将一种消息解码为另一种消息

​​​​​​ADO.NET实现对单表增加删除修改查询

在ADO.NET中&#xff0c;实现对单表的增加&#xff08;Insert&#xff09;、删除&#xff08;Delete&#xff09;、修改&#xff08;Update&#xff09;和查询&#xff08;Select&#xff09;操作&#xff0c;通常涉及以下步骤&#xff1a; 建立数据库连接&#xff1a;使用Sql…

4 月 9 日至 4 月 10 日,Hack.Summit() 2024 首聚香江

Hack.Summit() 是一系列 Web3 开发者大会。2024 年的活动将于 2024 年 4 月 9 日至 4 月 10 日在香港数码港举行。自十年前首次举办以来&#xff0c;此次会议标志着 Hack.Summit() 首次在亚洲举办&#xff0c;香港被选为首次亚洲主办城市&#xff0c;这对 Hack VC 和该地区都具…

Codeforces Round 898 (Div. 4)--H. Mad City--基环树博弈

链接&#xff1a;https://codeforces.com/problemset/problem/1873/H 题意&#xff1a; 给定一颗基环树&#xff0c;给定A和B的位置&#xff0c;A追赶B&#xff0c;两人会同时移动&#xff0c;每次一格。 两人的移动 问A是否永远无法追到B。 写在前面&#xff1a; 复习到…

批量给元素添加进场动画;获取文本光标位置;项目国际化

批量给元素添加进场动画 api及参数参考&#xff1a;https://juejin.cn/post/7310977323484971071 简单实现&#xff1a; addAnimationClass(){//交叉观察器if (window?.IntersectionObserver) {//获取所有需要添加进场动画的元素&#xff0c;放到一个数组let items [...do…

CMU和ETH联合研发了一个名为 「敏捷但安全」的新框架,为四足机器人在复杂环境中实现高速运动提供了解决方案

在高速机器人运动领域&#xff0c;实现同时兼顾速度和安全一直是一大挑战。但现在&#xff0c;卡内基梅隆大学&#xff08;CMU&#xff09;和苏黎世联邦理工学院&#xff08;ETH&#xff09;的研究团队带来了突破性进展。他们开发的新型四足机器人算法&#xff0c;不仅能在复杂…