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

相关文章

医院影像平台源码,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”,全部无偿共享给大家!!! 用老石的一句话其实很好说…

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

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

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

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

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

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

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

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

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

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

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

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

事务、函数和索引

目录 什么是事务? 事务的ACID原则: 事务的操作 事务的原子性、一致性、持久性 事务的隔离性 什么是事务的隔离性? 用什么方法实现事务的隔离性? MySQL中的锁 锁分类: 事务的隔离级别 事务并发问题 InnoDB的MVCC MVCC…

【C++】红黑树的应用(封装map和set)

✨ 青山一道同云雨,明月何曾是两乡 🌏 📃个人主页:island1314 🔥个人专栏:C学习 🚀 欢迎关注:👍点赞 &…

Unity UGUI 实战学习笔记(3)

仅作学习,不做任何商业用途 不是源码,不是源码! 是我通过"照虎画猫"写的,可能有些小修改 不提供素材,所以应该不算是盗版资源,侵权删 拼UI 提示面板的逻辑 using System.Collections; using System.Col…

大数据——Hive原理

摘要 Apache Hive 是一个基于 Hadoop 分布式文件系统 (HDFS) 的数据仓库软件项目,专为存储和处理大规模数据集而设计。它提供类似 SQL 的查询语言 HiveQL,使用户能够轻松编写复杂的查询和分析任务,而无需深入了解 Hadoop 的底层实现。 Hive…

Firefox扩展程序和Java程序通信

实现Firefox扩展程序,和Java RMI Client端进行通信。 在Firefox工具栏注册按钮,点击按钮后弹出Popup.html页面,引用Popup.js脚本,通过脚本向Java RMI client发送消息,Java RMI Client接收消息后转发到Java RMI Server…

MyBatis的入门操作--打印日志和增删改查(单表静态)

下面介绍注解和xml实现crud的操作 目录 一、日志打印和参数传递 1.1.使用mybatis打印日志 1.2.参数传递细节 二、crud(注解实现) 2.1.增(insert) 2.2.删(delete) 和 (update) 2.3.查(select) 三、crud(xml实现) 3.1.准备…

中国居民膳食指南书籍知识点汇总

人如果吃不好,就不能好好思考,好好爱,好好休息。——维吉尼亚伍儿夫 文章目录 书籍简介饮食准则推荐膳食图示 准则一:食物多样,合理搭配合理搭配的方法平衡膳食的科学原理均衡饮食的作用食物功效(有科学实验…

02、爬虫数据解析-Re解析

数据解析的目的是不拿到页面的全部内容,只拿到部分我们想要的内容内容。 Re解析就是正则解析,效率高准确性高。学习本节内容前需要学会基础的正则表达式。 一、正则匹配规则 1、常用元字符 . 匹配除换行符以外的字符 \w 匹配字母或数字或下划…

基于Python的房产数据分析系统的设计与实现(源码+lw+部署文档+讲解等)

文章目录: 目录 详细视频演示 设计文档详细参考 技术开发的参考技术栈! 2.1 Python语言 2.2 Django框架 2.3 MySQL 2.4 Hadoop介绍 2.5 Scrapy介绍 4.2 系统结构设计 4.3 数据库设计 界面设计与功能实现 5.1系统登录注册实现 5.2管理员模块…

【请求代理】springboot单机服务基于过滤器Filter实现第三方服务器接口请求代理功能

springboot单机服务基于过滤器Filter实现第三方服务器接口请求代理功能 一、前言二、解决思路三、基于gateway实现四、基于过滤器Filter实现五、问题总结 **注:本文源码获取或者更多资料,关注公众号:技术闲人**一、前言 在项目开发时会遇到w…

基于yolov8的口罩检测模型

项目介绍 本项目基于yolov8对图像进行训练,可以检测戴口罩的人与没有带口罩的人的图片和视频,除此之外,还提供了数据分析界面,支持检测过的信息转化为excel,信息可视化等功能 配置过程 软件开发环境:python3.9 系统…