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.hqwc.cn/news/472801.html

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

相关文章

用flex布局使<img>和<video>元素重叠并重合显示

接到需求&#xff0c;页面要显示手机播放视频的效果&#xff0c;那么就需要让手机边框img图片和视频video两个元素重叠并重合显示。先上效果图如下&#xff1a; 可以使用Flex布局来实现<img>和<video>元素的重叠。Flex布局是一种非常强大的布局方法&#xff0c;它可…

微信公众号扫码登录

1.设计 我们采用的是个人号登录方式&#xff0c;这样拿不到我们的userInfo用户信息&#xff0c;然后我们将用户发来的消息&#xff08;xml消息体&#xff09;中的FromUser作为我们唯一的openId 整体流程: 1.用户扫码公众号码&#xff0c;然后发一条消息&#xff1a;验证码&…

最适合初学者的Python入门详细攻略,一文讲清,赶紧收藏!

前言 目前python可以说是一门非常火爆的编程语言&#xff0c;应用范围也非常的广泛&#xff0c;工资也挺高&#xff0c;未来发展也极好。 Python究竟应该怎么学呢&#xff0c;我自己最初也是从零基础开始学习Python的&#xff0c;给大家分享Python的学习思路和方法。一味的买…

sqlserver对已有的表插入列

现有如下的一个表&#xff1b; 现在要插入一个 人员id 列&#xff1b;如下图在设计视图的行首单击&#xff0c;选择 插入列&#xff1b; 然后添加一个 人员id 列&#xff1b; 保存&#xff0c;出现下图提示&#xff0c;不能保存设计&#xff1b; 这就直接使用sql语句更改&#…

openGauss学习笔记-220 openGauss性能调优-确定性能调优范围-查询最耗性能的SQL

文章目录 openGauss学习笔记-220 openGauss性能调优-确定性能调优范围-查询最耗性能的SQL220.1 操作步骤 openGauss学习笔记-220 openGauss性能调优-确定性能调优范围-查询最耗性能的SQL 系统中有些SQL语句运行了很长时间还没有结束&#xff0c;这些语句会消耗很多的系统性能&…

QGIS004:【08图层工具箱】-导出到电子表格、提取图层范围

摘要&#xff1a;QGIS图层工具箱常用工具有导出到电子表格、提取图层范围等选项&#xff0c;本文介绍各选项的基本操作。 实验数据&#xff1a; 链接&#xff1a;https://pan.baidu.com/s/1ZK4_ShrQ5BsbyWfJ6fVW4A?pwdpiap 提取码&#xff1a;piap 一、导出到电子表格 工具…

Java与JavaScript同源不同性

Java是目前编程领域使用非常广泛的编程语言&#xff0c;相较于JavaScript&#xff0c;Java更被人们熟知。很多Java程序员想学门脚本语言&#xff0c;一看JavaScript和Java这么像&#xff0c;很有亲切感&#xff0c;那干脆就学它了&#xff0c;这也间接的帮助了JavaScript的发展…

鸿蒙(HarmonyOS)项目方舟框架(ArkUI)之NavDestination组件

鸿蒙&#xff08;HarmonyOS&#xff09;项目方舟框架&#xff08;ArkUI&#xff09;之NavDestination组件 一、操作环境 操作系统: Windows 10 专业版、IDE:DevEco Studio 3.1、SDK:HarmonyOS 3.1 二、NavDestination组件 作为NavRouter组件的子组件&#xff0c;用于显示导…

代码随想录算法训练营第十九天|654.最大二叉树、617.合并二叉树、700.二叉搜索树中的搜索、98.验证二叉搜索树

654.最大二叉树 刷题https://leetcode.cn/problems/maximum-binary-tree/description/文章讲解https://programmercarl.com/0654.%E6%9C%80%E5%A4%A7%E4%BA%8C%E5%8F%89%E6%A0%91.html视频讲解https://www.bilibili.com/video/BV1MG411G7ox/?vd_sourceaf4853e80f89e28094a5fe…

【LeetCode: 103. 二叉树的锯齿形层序遍历 + BFS】

&#x1f680; 算法题 &#x1f680; &#x1f332; 算法刷题专栏 | 面试必备算法 | 面试高频算法 &#x1f340; &#x1f332; 越难的东西,越要努力坚持&#xff0c;因为它具有很高的价值&#xff0c;算法就是这样✨ &#x1f332; 作者简介&#xff1a;硕风和炜&#xff0c;…

PyTorch 快速安装 - 基于 JupyterHub 并运行 K8s

PyTorch 快速安装 - 基于 JupyterHub 并运行 K8s 运行 PyTorch 可以直接逻辑运行、容器中运行、KubeFlow 中运行以及基于 JupyterHub&#xff08;独立运行或运行在 K8s 之上&#xff09;等多种模式。这里介绍运行在 K8s 上基于 JupyterHub 的 PyTorch 方法&#xff0c;这也是运…

阿里云服务器租用收费标准价格表(2024年更新)

2024年最新阿里云服务器租用费用优惠价格表&#xff0c;轻量2核2G3M带宽轻量服务器一年61元&#xff0c;折合5元1个月&#xff0c;新老用户同享99元一年服务器&#xff0c;2核4G5M服务器ECS优惠价199元一年&#xff0c;2核4G4M轻量服务器165元一年&#xff0c;2核4G服务器30元3…