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,一经查实,立即删除!

相关文章

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;然后点击下载就行…

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…

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将一种消息解码为另一种消息

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

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

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

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

集团企业大数据应用:突破痛点,释放数据价值

在数字经济日益崛起的背景下&#xff0c;集团企业以其管理范围广泛、业务领域多元化和分支机构复杂化的特性&#xff0c;在市场竞争中扮演着重要角色。为了维持和提升这种竞争力&#xff0c;大数据应用成为了集团企业不可或缺的战略工具。然而&#xff0c;在实际应用中&#xf…

使用MinIO S3存储桶备份Weaviate

Weaviate 是一个开创性的开源向量数据库&#xff0c;旨在通过利用机器学习模型来增强语义搜索。与依赖关键字匹配的传统搜索引擎不同&#xff0c;Weaviate 采用语义相似性原则。这种创新方法将各种形式的数据&#xff08;文本、图像等&#xff09;转换为矢量表示形式&#xff0…

单片机学习笔记---直流电机驱动(PWM)

直流电机介绍 直流电机是一种将电能转换为机械能的装置。一般的直流电机有两个电极&#xff0c;当电极正接时&#xff0c;电机正转&#xff0c;当电极反接时&#xff0c;电机反转 直流电机主要由永磁体&#xff08;定子&#xff09;、线圈&#xff08;转子&#xff09;和换向器…

ModuleNotFoundError: No module named ‘torchvision.models.utils‘报错的一种解决方法

最近在做一个BEV项目&#xff0c;在配置环境的时候&#xff0c;遇到了报错的一个问题&#xff1a; ModuleNotFoundError: No module named ‘torchvision.models.utils’ 我开始以为是我没有安装torchvision pip install torchvision -i http://pypi.douban.com/simple输入这…

【机器学习笔记】12 聚类

无监督学习概述 监督学习 在一个典型的监督学习中&#xff0c;训练集有标签&#x1d466; &#xff0c;我们的目标是找到能够区分正样本和负样本的决策边界&#xff0c;需要据此拟合一个假设函数。无监督学习 与此不同的是&#xff0c;在无监督学习中&#xff0c;我们的数据没…

微服务学习Day4

文章目录 初始MQ同步通讯和异步通讯MQ常见技术介绍 RabbitMQ快速入门入门案例 SpringAMQP介绍例子WorkQueue模型exchange交换机消息转换器 初始MQ 同步通讯和异步通讯 MQ常见技术介绍 RabbitMQ快速入门 入门案例 SpringAMQP 介绍 例子 WorkQueue模型 exchange交换机 消息转换…