Java:自定义Enum

Java 枚举是一个特殊的类,一般表示一组常量,比如一年的 4 个季节,一年的 12 个月份,一个星期的 7 天,方向有东南西北等。

一、常量:

Java 枚举类使用enum关键字来定义,各个常量使用逗号“,”来分割。

定义一个颜色的枚举类:

enum Color { RED, GREEN, BLUE; 
} 

测试代码:

public class Test { // 执行输出结果public static void main(String[] args) {Color c1 = Color.RED;System.out.println(c1);}
}// 运行结果
RED

 二、switch:

switch 语句中的变量类型可以是: byte、short、int 或者 char。从 Java SE 7 开始,switch 支持字符串 String 类型了,同时 case 标签必须为字符串常量或字面量。

示例:

enum ColorEnum { RED, GREEN, BLUE; 
} public class MyClass {public static void main(String[] args) {ColorEnum color= ColorEnum.BLUE;switch(color) {case RED:System.out.println("红色");break;case GREEN:System.out.println("绿色");break;case BLUE:System.out.println("蓝色");break;}}
}

运行结果:

蓝色

三、常用方法:

values(), ordinal() 和 valueOf() 方法

enum 定义的枚举类默认继承了 java.lang.Enum 类,并实现了 java.lang.Serializable 和 java.lang.Comparable 两个接口。

values(), ordinal() 和 valueOf() 方法位于 java.lang.Enum 类中:

  • values() 返回枚举类中所有的值。
  • ordinal()方法可以找到每个枚举常量的索引,就像数组索引一样。
  • valueOf()方法返回指定字符串值的枚举常量。
enum Color 
{ RED, GREEN, BLUE; 
} public class Test 
{ public static void main(String[] args) { // 调用 values() Color[] colors = Color.values(); // 迭代枚举for (Color color : colors) { // 查看索引System.out.println(color + " at index " + color.ordinal()); } // 使用 valueOf() 返回枚举常量,不存在的会报错 IllegalArgumentException System.out.println(Color.valueOf("RED")); // System.out.println(Color.valueOf("WHITE")); } 
}

执行以上代码输出结果为:

RED at index 0
GREEN at index 1
BLUE at index 2
RED

四、枚举类成员

枚举跟普通类一样可以用自己的变量、方法和构造函数,构造函数只能使用 private 访问修饰符,所以外部无法调用。

枚举既可以包含具体方法,也可以包含抽象方法。 如果枚举类具有抽象方法,则枚举类的每个实例都必须实现它。

enum Color 
{ RED, GREEN, BLUE; // 构造函数private Color() { System.out.println("Constructor called for : " + this.toString()); } public void colorInfo() { System.out.println("Universal Color"); } 
} public class Test 
{     // 输出public static void main(String[] args) { Color c1 = Color.RED; System.out.println(c1); c1.colorInfo(); } 
}

执行以上代码输出结果为:

Constructor called for : RED
Constructor called for : GREEN
Constructor called for : BLUE
RED
Universal Color

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

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

相关文章

IIS如何本地部署网站,作为局域网内的服务器

文章目录 IIS本地部署WebService1.使用IIS及WebService的原因:2.相关文件说明及网络条件说明:(1)文件说明:(2)网络条件说明: 3.IIS安装与配置:第一步:安装第二步&#xf…

01--二分查找

一. 初识算法 1.1 什么是算法? 在数学和计算机科学领域,算法是一系列有限的严谨指令,通常用于解决一类特定问题或执行计算 不正式的说,算法就是任何定义优良的计算过程:接收一些值作为输入,在有限的时间…

介绍一款上传漏洞fuzz字典生成工具

介绍一款上传漏洞fuzz字典生成工具 1.工具概述2.安装3.参数解析4.使用案例1.工具概述 upload-fuzz-dic-builder是一个上传漏洞fuzz字典生成脚本,生成时给的上传点相关信息越详细,生成的字典越精确 upload-fuzz-dic-builder 2.安装 克隆项目: git clone git@github.com:c…

CTF-文件包含(1)

南邮杯CTF 文件包含 题目地址:asdf 点击后利用file函数对show.php进行文件利用 使用伪协议php://filter/readconvert.base64-encode/resourceindex.php访问index.php文件 base64解码后得到flag [极客大挑战 2019]Secret File 题目地址:BUUCTF在线评测 …

用23种设计模式打造一个cocos creator的游戏框架----(十九)备忘录模式

1、模式标准 模式名称:备忘录模式 模式分类:行为型 模式意图:在不破坏封装性的前提下捕获一个对象的内部状态,并在对象之外保存这个状态。这样以后就可以将对象恢复到原先保存的状态 结构图: 适用于: …

mysql汇总

一、多个模糊条件查询 regexp 1、group_concat 连接 distinct 去重 SEPARATOR ’,‘ 逗号分割 select FIELD_NAME 字段中文名,GROUP_CONCAT(DISTINCT FIELD_CODE SEPARATOR ‘,’) 字段英文名 from da_dp_table_field where FIELD_NAME regexp ‘用户编码|客户编码’ and DEL_…

遥感图像识别和地理信息系统集成应用的优势有哪些

遥感图像识别和地理信息系统集成应用的优势主要包括: 宏观观测能力强:遥感技术获取的图像数据空间范围比地面观测视角范围要大得多,且不受地形地貌的影响。这不仅拓宽了人们的视觉空间,为宏观地掌握地面事物的现状情况创造了极为…

我的网站服务器被入侵了该怎么办?

最近有用户咨询到德迅云安全,说自己再用的网站服务器遇到了入侵情况,询问该怎么处理入侵问题,有什么安全方案可以解决服务器被入侵的问题。下面,我们就来简单讲下服务器遇到入侵了,该从哪方面入手处理,在预…

不想学习只想摆烂系列之GUIjava项目

知道GUI框架怎么写就行 1.定义jFRame 2.分开写测试类 3.给几个按钮 4.负责提供测试器 这样就把框架打好了 主程序-继承某个类 import javax.swing.*; import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener;public class RadioB…

shell编程-xargs命令详解(超详细)

文章目录 一、引言二、命令格式和选项三、示例用法四、注意事项和常见问题五、扩展应用六、总结七、参考文献 一、引言 本文将介绍Unix/Linux系统中的xargs命令,该命令是一个强大的命令行工具,用于将标准输入的数据转换为命令行参数。它可以帮助我们处理…

Stable-Diffusion|文生图 完蛋我被美女包围了人物Lora(四)

前面几篇: Stable-Diffusion|window10安装GPU版本的 Stable-Diffusion-WebUI遇到的一些问题(一) 【Stable-Diffusion|入门怎么下载与使用civitai网站的模型(二)】 Stable-Diffusion|文生图 拍立得纪实风格的Lora 图例&…

线性代数(一)

1.标量:标量由只有⼀个元素的张量表⽰。 x np.array(3.0) y np.array(2.0) x y, x * y, x / y, x ** y (array(5.), array(6.), array(1.5), array(9.))2.向量:向量可以被视为标量值组成的列表,列向量是向量的默认⽅向。 x np.arange(4…

Vue3-09-条件渲染-v-show 的基本使用

v-show 的作用 v-show 可以根据条件表达式的值【展示】或【隐藏】html 元素。v-show 的特点 v-show 的实现方式是 控制 dom 元素的 css的 display的属性, 因此,无论该元素是否展示,该元素都会正常渲染在页面上, 当v-show 的 条件…

【Linux】cp问题,生产者消费者问题代码实现

文章目录 前言一、 BlockQueue.hpp(阻塞队列)二、main.cpp 前言 生产者消费者模式就是通过一个容器来解决生产者和消费者的强耦合问题。生产者和消费者彼此之间不直接通讯,而通过阻塞队列来进行通讯,所以生产者生产完数据之后不用…

3.2【窗口】窗口的几何形状(一,窗口类型)

一,窗口几何简介 窗口的几何形状由一组属性定义,这些属性指示窗口及其内容的显示方式。定义窗口几何形状的属性集可分为两组:与显示相关的属性和与内容相关的属性。 设置与显示相关的属性需要了解显示坐标系和窗口层次结构。原因是与显示相关的属性用于在显示上调整窗口的…

Java实现对图片压缩指定大小。比如1260*945。如果图片尺寸大于,就压缩。小于,就拉伸到指定大小

需求: Java实现对图片压缩指定大小。比如1260*945。如果图片尺寸大于,就压缩。小于,就拉伸到指定大小 代码实现: import java.awt.Graphics2D; import java.awt.Image; import java.awt.image.BufferedImage; import java.io.F…

Linux-RedHat-7.9-安装Oracle客户端11.2

1 .下载Oracle客户端 Instant Client for Linux x86-64 (64-bit) 目录: oracle-instantclient11.2-basic-11.2.0.4.0-1.x86_64 oracle-instantclient11.2-sqlplus-11.2.0.4.0-1.x86_64 oracle-instantclient11.2-devel-11.2.0.4.0-1.x86_64 切换 su root 命令…

MYSQL练题笔记-高级字符串函数 / 正则表达式 / 子句-简单3题

这个系列先写了三题,比较简单写在一起。 1.修复表中的名字相关的表和题目如下 看题目就知道是有关字符串函数的,于是在书里查询相关的函数,如下图,但是没有完全对口的函数,所以我还是去百度了。 然后发现结合上面的4个…

大数据Doris(三十七):索引和Rollup基本概念和案例演示

文章目录 索引和Rollup基本概念和案例演示 一、基本概念 二、 案例演示

读书笔记-《数据结构与算法》-摘要5[归并排序]

归并排序 核心:将两个有序对数组归并成一个更大的有序数组。通常做法为递归排序,并将两个不同的有序数组归并到第三个数组中。 先来看看动图,归并排序是一种典型的分治应用。 public class MergeSort {public static void main(String[] ar…