零基础学Java第十四天之枚举

枚举

1、理解

枚举(Enumeration,通常简写为enum)在编程语言中是一种特殊的数据类型,它允许你为变量定义一组命名的常量。这些常量通常表示一组有限的值,比如一周的七天、颜色的集合或者状态的集合等。枚举类型的主要目的是提高代码的可读性和可维护性,同时减少错误的可能性。

2、定义

枚举类型是通过关键字enum定义的,后面跟着枚举类型的名称和用逗号分隔的枚举值列表。每个枚举值都是该类型的一个实例,并且每个枚举值都是唯一的。

3、特点

  • 枚举类型的值是预定义的,并且是有限的。
  • 枚举类型的值是常量,一旦定义后就不能修改。
  • 枚举类型的值具有类型安全性,即它们是强类型的,不能与其他类型混淆。
  • 枚举类型可以定义属性和方法,就像普通的类一样,但枚举类型的构造器通常是私有的,以防止从外部创建枚举实例。

4、使用

1、案例一季节类

package com.xx.enum02;public class Test01 {/*** 知识点:枚举的引入* * 需求:编写季节类(Season),该类只有四个对象(spring,summer,autumn,winter)*/public static void main(String[] args) {System.out.println(Season.spring);System.out.println(Season.summer);System.out.println(Season.autumn);System.out.println(Season.winter);}
}
package com.xx.enum02;//季节枚举类
//注意:枚举就是一个受限制的类(该类只能有固定的几个对象,不能让外界创建对象)
//注意:枚举不能有继承关系(显示继承)
//注意:自定义枚举类隐式继承Enum类 -- public class Season extends Enum{}
public enum Season{//注意:枚举类的第一行必须声明对象//spring;//底层实现 - public static final Season spring = new Season();//spring();//底层实现 - public static final Season spring = new Season();spring("春天","春雨绵绵"),//底层实现 - public static final Season spring = new Season("春天","春雨绵绵");summer("夏天","烈日炎炎"),//底层实现 - public static final Season spring = new Season("夏天","烈日炎炎");autumn("秋天","硕果累      累"),//底层实现 - public static final Season spring = new Season("秋天","硕果累累");winter("冬天","白雪皑皑");//底层实现 - public static final Season spring = new Season("冬天","白雪皑皑");private String name;private String info;//注意:枚举类的构造方法使用private修饰private Season() {}private Season(String name, String info) {this.name = name;this.info = info;}public String getName() {return name;}public void setName(String name) {this.name = name;}public String getInfo() {return info;}public void setInfo(String info) {this.info = info;}@Overridepublic String toString() {return name + " -- " + info;}
}

2、案例二信号机

package com.xx.enum06;//信号灯
public enum Signal {RED, YELLOW, GREEN;
}
package com.xx.enum06;import java.util.Scanner;public class Test01 {/*** 知识点:枚举案例 之 状态机*/public static void main(String[] args) {Scanner scan = new Scanner(System.in);System.out.println("请选择信号灯:RED, YELLOW, GREEN");String str = scan.next();Signal signal = Signal.valueOf(str);String trafficInstruct = getTrafficInstruct(signal);System.out.println(trafficInstruct);scan.close();}public static String getTrafficInstruct(Signal signal) {String trafficInstruct = "信号灯故障";switch (signal) {case RED:trafficInstruct = "红灯停";break;case YELLOW:trafficInstruct = "黄灯请注意";break;case GREEN:trafficInstruct = "绿灯行";break;}return trafficInstruct;}
}

3、案例三错误码

package com.xx.enum07;public enum AddCode {ERR01(-1,"添加失败 - 学生信息不合法"),ERR02(-2,"添加失败 - 没有该学生"),OK(1,"添加成功");private int code;private String message;private AddCode(int code, String message) {this.code = code;this.message = message;}public int getCode() {return code;}public void setCode(int code) {this.code = code;}public String getMessage() {return message;}public void setMessage(String message) {this.message = message;}@Overridepublic String toString() {return code + " -- " + message;}
}
package com.xx.enum07;public class Test01 {/*** 知识点:枚举案例 之 错误码*/public static void main(String[] args) {System.out.println(AddCode.ERR01);System.out.println(AddCode.ERR02);System.out.println(AddCode.OK);}
}

4、案例四 组织枚举

package com.qf.enum08;public interface Code {enum AddCode {ERR01(-1,"添加失败 - 学生信息不合法"),ERR02(-2,"添加失败 - 有重复学生"),OK(1,"添加成功");private int code;private String message;private AddCode(int code, String message) {this.code = code;this.message = message;}public int getCode() {return code;}public void setCode(int code) {this.code = code;}public String getMessage() {return message;}public void setMessage(String message) {this.message = message;}@Overridepublic String toString() {return code + " -- " + message;}}enum RemoveCode {ERR01(-1,"删除失败 - 学生信息不合法"),ERR02(-2,"删除失败 - 没有该学生"),OK(1,"删除成功");private int code;private String message;private RemoveCode(int code, String message) {this.code = code;this.message = message;}public int getCode() {return code;}public void setCode(int code) {this.code = code;}public String getMessage() {return message;}public void setMessage(String message) {this.message = message;}@Overridepublic String toString() {return code + " -- " + message;}}enum UpdateCode {ERR01(-1,"修改失败 - 学生信息不合法"),ERR02(-2,"修改失败 - 没有该学生"),ERR03(-3,"修改失败 - 修改数据不合法"),ERR04(-4,"修改失败 - 目标班级上有学生"),ERR05(-5,"修改失败 - 目标学号上有学生"),OK(1,"修改成功");private int code;private String message;private UpdateCode(int code, String message) {this.code = code;this.message = message;}public int getCode() {return code;}public void setCode(int code) {this.code = code;}public String getMessage() {return message;}public void setMessage(String message) {this.message = message;}@Overridepublic String toString() {return code + " -- " + message;}}}
package com.qf.enum08;public class Test01 {/*** 知识点:枚举案例 之 组织枚举* * 应用场景:可以将一个一个的错误码使用类或接口组织在一起* * 注意:* 		使用类组织枚举,枚举默认使用static修饰* 		使用接口组织枚举,枚举默认使用public static修饰* 经验:使用接口组织众多枚举*/public static void main(String[] args) {System.out.println(Code.AddCode.ERR01);}
}

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

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

相关文章

es 分词器(五)之elasticsearch-analysis-jieba 8.7.0

es 分词器(五)之elasticsearch-analysis-jieba 8.7.0 今天咱们就来讲一下es jieba 8.7.0 分词器的实现,以及8.x其它版本的实现方式,如果想直接使用es 结巴8.x版本,请直接修改pom文件的elasticsearch.version版本号即可…

再谈毕业论文设计投机取巧之IVR自动语音服务系统设计(信息与通信工程专业A+其实不难)

目录 举个IVR例子格局打开,万物皆能IVR - 把《民法典》搬上IVR IVR系统其实可盐可甜。还能可圈可点。 戎马一生,归来依然IVR。 举个IVR例子 以下是IVR系统的一个例子。 当您拨打电话进入IVR系统。 首先检验是否为工作时间。 如是,您将被送入…

基于51单片机的自动浇花器电路

一、系统概述 自动浇水灌溉系统设计方案,以AT89C51单片机为控制核心,采用模块化的设计方法。 组成部分为:5V供电模块、土壤湿度传感器模块、ADC0832模数转换模块、水泵控制模块、按键输入模块、LCD显示模块和声光报警模块,结构如…

垃圾分类管理系统java项目

文章目录 垃圾分类管理系统一、项目演示二、项目介绍三、系统部分功能截图四、部分代码展示五、底部获取项目(9.9¥带走) 垃圾分类管理系统 一、项目演示 垃圾分类管理系统 二、项目介绍 系统角色:管理员、用户 1、登录、注册功能…

机器人非线性系统反馈线性化与解耦

机器人非线性系统的反馈线性化和解耦是控制理论中的两个重要概念,它们分别用于简化系统分析和设计过程,提高控制系统的性能。 首先,反馈线性化是一种将非线性系统转化为线性系统的技术。在机器人控制中,由于机器人本身是一个强耦…

​python使用selenium进行Web自动化测试​

什么是selenium Selenium 是 ThoughtWorks 提供的一个强大的基于浏览器的 Selenium 是一个用于 Web 应用程序测试的工具,测试直接自动运行在浏览器中,就像真正的用户在手工操作一样。支持的浏览器包括 IE、Chrome 和 Firefox 等。这个工具的主要功能包…

2024042001-计算机网络 - 物理层

计算机网络 - 物理层 计算机网络 - 物理层 通信方式带通调制 通信方式 根据信息在传输线上的传送方向,分为以下三种通信方式: 单工通信:单向传输半双工通信:双向交替传输全双工通信:双向同时传输 带通调制 模拟信号…

C++基础——继承(下)

一、继承与静态成员 基类定义了static 静态成员,则整个继承体系里面只有一个这样的成员。无论派生出多少个子 类,都只有一个 static 成员实例 。 class person { public:person(const char* name "lisi"):_name(name){} public:string _name;…

那些年我与c++的叫板(一)--string类自实现

引子:我们学习了c中的string类,那我们能不能像以前数据结构一样自己实现string类呢?以下是cplusplus下的string类,我们参考参考! 废话不多说,直接代码实现:(注意函数之间的复用&…

Nacos+GateWay 搭建微服务架构

文章目录 1.当前项目架构分析1.请求多个模块的方式1.请求renren-fast模块开发环境生产环境 2.请求sunliving-commodity模块1.使用环境变量资源路径的方式2.开发环境 dev.env.js3.生产环境 prod.env.js 3.文件上传请求 sunliving-service模块1.请求后端接口(开发环境…

当服务实例出现故障时,Nacos如何处理?

当服务实例出现故障时,Nacos的应对策略 在微服务架构日益盛行的今天,服务之间的稳定性与可靠性成为了我们架构师们不得不面对的重要课题。尤其是在面对服务实例出现故障时,如何确保整个系统的稳定运行,成为了我们首要考虑的问题。…

汇聚荣科技:拼多多上架商品后需要做页面推广吗?

在电商平台上,商品的曝光率和销量往往成正比。那么,当您在拼多多上架了新品,是不是就意味着坐等订单呢?答案显然是否定的。商品一旦上架,接下来需要做的就是通过有效的页面推广来增加商品的可见度,吸引潜在买家的注意…

在亚马逊上卖灯具需要什么认证,亚马逊灯饰产品需要审核与认证吗

LED灯具在亚马逊美国站销售,需要有UL认证或者UL报告、FCC,如果是带消毒灭菌的灯,需要做EPA,欧洲站,日本站,认证只需要CE和ROHSR认证。 UL认证:本认证主要针对充电器、移动电源、手机电池、灯具…

Rust的NLL特性:让生命周期管理更灵活

Rust的NLL特性:让生命周期管理更灵活 Rust语言以其独特的内存安全和并发性能受到开发者的青睐。而在Rust中,一个关键的概念就是“生命周期”。为了进一步优化生命周期的管理和借用检查,Rust引入了NLL(Non-Lexical Lifetime&#…

html基础(全)

html简介 目录 什么是网页 什么是 HTML 常用浏览器 WebE标准的构成 基本语法概述 第一个HTML页面 文档类型声明标签 lang 语言种类 字符集 标题标签 段落和换行标签 文本格式化标签 div和span标签 图像标签和路径 超链接标签 表格的主要作用 表头单元格标签 列…

纯血鸿蒙APP实战开发——Web获取相机拍照图片案例

介绍 本示例介绍如何在HTML页面中拉起原生相机进行拍照,并获取返回的图片。 效果预览图 使用说明 点击HTML页面中的选择文件按钮,拉起原生相机进行拍照。完成拍照后,将图片在HTML的img标签中显示。 实现思路 添加Web组件,设置…

【SpringBoot】SpringBoot整合jasypt进行重要数据加密

📝个人主页:哈__ 期待您的关注 目录 📕jasypt简介 🔥SpringBoot使用jasypt 📂创建我需要的数据库文件 📕引入依赖 🔓配置数据库文件(先不进行加密) 🌙创…

Anaconda安装-超详细版(2024)

扫盲:先装Python还是先装anaconda? 安装anaconda即可,不需要单独装python anaconda 是一个python的发行版,包括了python和很多常见的软件库, 和一个包管理器conda。 一、下载Anaconda 安装包(官网和国内镜像资源) …

【深度学习】SDXL中的Offset Noise,Diffusion with Offset Noise,带偏移噪声的扩散

https://www.crosslabs.org//blog/diffusion-with-offset-noise 带有偏移噪声的扩散 针对修改后的噪声进行微调,使得稳定扩散能够轻松生成非常暗或非常亮的图像。 作者:尼古拉斯古藤伯格 | 2023年1月30日 马里奥兄弟使用稳定扩散挖掘隧道。左图显示了未…