Java语言程序设计——篇九(2)

在这里插入图片描述

     🌿🌿🌿跟随博主脚步,从这里开始→博主主页🌿🌿🌿

枚举类型

  • 枚举类型的定义
  • 枚举类型的方法
      • 实战演练
  • 枚举在switch中的应用
      • 实战演练
  • 枚举类的构造方法
      • 实战演练

枚举类型的定义

 [修饰符] enum 枚举类型名{[public static final]枚举成员;  //只能写在第一行其他成员;[private]构造方法方法}
  • 修饰符可以是public、private、internal
  • 枚举类型名有两层含义:一是作为枚举名使用;二是表示枚举成员的数据类型。枚举成员也称为枚举实例或枚举对象。
  • 枚举默认继承自java.lang.Enum类。
  • 创建枚举对象不能使用new( )运算符,而应直接将枚举成员赋值给枚举对象。

枚举类型的方法

  • 每个枚举类型的成员都可以看作是Enum类的实例,这些枚举成员默认被final public static修饰。
  • 访问枚举类型的成员
       枚举名.枚举成员
       枚举名.valueOf( 参数)
  • 因为枚举也是一种类,所以它具有与其他类几乎相同的特性,因此可以定义枚举的属性、构造方法以及方法。
  • 枚举类常用方法
方法说明
public static E[] values( )返回枚举类型的数组,包含了枚举的所有枚举成员
public static E valueOf(String str)返回名称为str的枚举成员
public final int compareTo (E o)返回当前枚举成员与参数枚举成员o在定义时顺序的比较结果
Public final class getDeclaringClass()返回对应的枚举常量的枚举类型的类对象
public final String name( )返回枚举常量的名字
public final int ordinal ( )返回枚举成员在枚举中的序号(0开始)
public String toString( )返回枚举成员的名称

实战演练

【例】定义一个枚举类型,然后输出枚举成员的名称和对应的序号。

enum Direction
{ EAST,SOUTH,WEST,NORTH }
public class EnumDemo{public static void main(String[] args){Direction dir=Direction.EAST;System.out.print(dir);for(Direction d:Direction.values())System.out.println("序号:"+d.ordinal()+" 的值为"+d.name());}
}

在这里插入图片描述

枚举在switch中的应用

  • 枚举类型有一个特别实用的特性,它可以在switch语句中使用。
  • java.time.DayOfWeek是一个枚举类型,其中包括一周的7天,分别为MONDAY、TUESDAY、WEDNESDAY、THURSDAY、FRIDAY、SATURDAY和SUNDAY,序号从0到6。
  • EnumSwitch.java程序在switch结构中使用DayOfWeek枚举。

实战演练

【例】 java.time.DayOfWeek是一个枚举类,一周7天,序号分别是0-6

import java.time.DayOfWeek;
public class EnumSwitch {public static void describe (DayOfWeek day) {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) {DayOfWeek firstDay = DayOfWeek.MONDAY;describe (firstDay);DayOfWeek thirdDay = DayOfWeek.WEDNESDAY;describe (thirdDay);DayOfWeek seventhDay = DayOfWeek.SUNDAY;describe(seventhDay); }
}	

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

枚举类的构造方法

  • 枚举的构造方法只是在构造枚举实例值时被调用。每一个枚举实例值都是枚举的一个对象,因此创建每个枚举实例时都需要调用该构造方法。

实战演练

【例】 定义color枚举,包含四种颜色,声明两个private成员变量(name颜色名字、index索引)

package com;
public enum Color {
RED("红色", 1), GREEN("绿色", 2), WHITE("白色", 3), YELLOW("黄色", 4);private String name;private int index;private Color(String name, int index) {this.name = name;this.index = index;}public static String getName(int index) {for (Color c : Color.values()) {if (c.getIndex() == index) {return c.name;}}return null;}public String getName() {return name;}public void setName(String name) {this.name = name;}public int getIndex() {return index;}public void setIndex(int index) {this.index = index;}@Overridepublic String toString() {return this.name + "_" + this.index;}public static void main (String[] args) { Color c = Color.RED;          // 自动调用构造方法System.out.println(c.toString());	// 输出:1-红色}}}	 	

博主用心写,读者点关注,互动传真情,知识不迷路

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

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

相关文章

内部文档:如何创建、提示和示例

每个组织都拥有一定的内部知识储备,可以让组织不断运转、持续发展。这些知识资产对于每个企业来说都是独一无二的,并且高度依赖于为您工作的人员。问题是,这些知识常常储存在员工的头脑中。如果知识被记录下来,它通常隐藏在 Slack…

医院影像平台源码,C/S体系结构的C#语言PACS系统全套商业源代码

医学学影像临床信息系统具有图像采集、显示、存储、传输和管理等功能,支持DICOM影像设备和非DICOM影像设备,可以识别CT、MR、CR/DR、X光、DSA、B超、NM、SC等设备的图像类型,可对数字影像进行无损压缩和有损压缩处理。C/S体系结构的多媒体数据…

湖仓一体架构解析:数仓架构选择(第48天)

系列文章目录 1、Lambda 架构 2、Kappa 架构 3、混合架构 4、架构选择 5、实时数仓现状 6、湖仓一体架构 7、流批一体架构 文章目录 系列文章目录前言1、Lambda 架构2、Kappa 架构3、混合架构4、架构选择5、实时数仓现状6、湖仓一体架构7、流批一体架构 前言 本文解析了Lambd…

Verilog语言和C语言的本质区别是什么?

在开始前刚好我有一些资料,是我根据网友给的问题精心整理了一份「C语言的资料从专业入门到高级教程」, 点个关注在评论区回复“888”之后私信回复“888”,全部无偿共享给大家!!! 用老石的一句话其实很好说…

QtQuick-QML类型系统-对象特性 (方法特性)

概念 对象类型的方法就是一个函数,可以执行,也可以和信号关联,这样发射信号会自动调用。 在C中,可以使用Q_INVOKABLE宏或者Q_SLOT宏进行注册的方式定义方法; 另外,也可以在QML文档的对象声明里使用下面的…

二分类损失 - BCELoss详解

BCELoss (Binary Cross-Entropy Loss) 是用于二分类问题的损失函数。它用于评估预测值和实际标签之间的差异。在 PyTorch 中,BCELoss 是一个常用的损失函数。以下是 BCELoss 的详细计算过程和代码实现。 BCELoss 的计算过程 给定一组预测值 y ^ \hat{y} y^​ 和实…

redis的使用场景-分布式锁

使用redis的setnx命令放入数据并用此数据当锁完成业务(但是如果用户操作途中出现异常导致超出指定时间会出现问题) Service public class StockService {Autowiredprivate StockDao stockDao; //mapper注入Autowiredprivate StringRedisTemplate redisT…

ssm框架整合,异常处理器和拦截器(纯注解开发)

目录 ssm框架整合 第一步:指定打包方式和导入所需要的依赖 打包方法:war springMVC所需依赖 解析json依赖 mybatis依赖 数据库驱动依赖 druid数据源依赖 junit依赖 第二步:导入tomcat插件 第三步:编写配置类 SpringCon…

【AI绘画】Midjourney V6初学者完全指南 参数篇

本文我们将详细介绍对图像生成结果产生重大影响的"参数"。 1. 什么是参数? 参数是一种添加到提示末尾以调整图像生成输出设置的方法。 它们用两个连字符"–“和特定字符串表示,如”–ar"、“–chaos”、"–r"等。 您也可以同时使用多个参数…

分布式控制算法——第一部分:基础概念与原理

分布式控制算法 文章目录 分布式控制算法第一部分:基础概念与原理1. 引言分布式控制的定义分布式控制系统的特点与优势分布式控制的应用场景 2. 分布式系统基础分布式系统的定义和特性分布式计算模型常见的分布式系统架构 3. 分布式控制基础分布式控制的基本原理中央…

面试题003:面向对象的特征 之 封装性

Java规定了4种权限修饰,分别是:private、缺省、protected、public。我们可以使用4种权限修饰来修饰类及类的内部成员。当这些成员被调用时,体现可见性的大小。 封装性在程序中的体现: 场景1:私有化(private)类的属性,提供公共(pub…

java项目中添加SDK项目作为依赖使用(无需上传Maven)

需求: 当需要多次调用某个函数或算法时,不想每次调用接口都自己编写,可以将该项目打包,以添加依赖的方式实现调用 适用于: 无需上线的项目,仅公司或团队内部使用的项目 操作步骤: 以下面这…

菜鸟从0学微服务——MyBatis-Plus

关于“菜鸟从0学微服务” 针对有编程基础,开始学习微服务的同学,我们陆续推出从0学微服务的笔记分享。力求从各个中间件的使用来反思这些中间件的作用和优势。 会分享的比较快,会记录demo演算和中间件的使用过程,至于细节的理论…

OPENMV脱机调阈值

用到了7个按钮,第一个用来选择是否进入调阈值模式。 后6个用来调整OPENMV阈值编辑器的6个滑动条 OPENMV代码 import sensor, image, time, pyb,math, display from pyb import UARTsensor.reset() sensor.set_framesize(sensor.QQVGA) sensor.set_pixformat(sens…

【数学建模】——【python】实现【最短路径】【最小生成树】【复杂网络分析】

目录 1. 最短路径问题 - 绘制城市间旅行最短路径图 题目描述: 要求: 示例数据: python 代码实现 实现思想: 要点: 2. 最小生成树问题 - Kruskal算法绘制MST 题目描述: 要求: 示例数据…

【Linux】模拟实现简易shell命令行:基于进程创建、进程等待、进程替换等知识的练习

程序功能:模拟实现一个自己的shell执行命令行。 涉及知识:字符串输入及操作函数、子进程创建、进程等待、进程替换、环境变量及获取、添加环境变量的函数 额外需要了解的功能函数:chdir(char* path)函数——改变当前…

PostgreSQL入门与进阶学习,体系化的SQL知识,完成终极目标高可用与容灾,性能优化与架构设计,以及安全策略

​专栏内容: postgresql使用入门基础手写数据库toadb并发编程 个人主页:我的主页 管理社区:开源数据库 座右铭:天行健,君子以自强不息;地势坤,君子以厚德载物. 文章目录 概述基础篇初级篇进阶篇…

安装 GCC 编译器和开发工具

安装 GCC 编译器和开发工具 更新软件包管理器 在 CentOS 终端中,首先更新软件包管理器: sudo yum update -y安装 GCC 编译器和其他开发工具 运行以下命令安装 GCC 编译器和其他必要的开发工具: sudo yum groupinstall -y "Development T…

通过不同方式在 Vue 3 中传递路由参数

如何通过不同方式在 Vue 3 中传递路由参数,并在组件中使用 defineProps 或其他组合式 API 获取这些参数? 1. 通过 path 参数传递 最常见的方式,通过在路由路径中定义动态参数,并在路由配置中设置 props: true,将参数…

S5730举例

校园网络拓扑和设备 大学校园网络通常使用多层级结构,核心是承载所有交换机的中心点,而分支则连接到核心以支持更广泛的网络覆盖。华为的S5730交换机通常用于大型企业和校园网络中,提供高性能和可靠性。 STP (Spanning Tree Protocol) 作用&…