Java~枚举的使用

article/2024/12/27 10:54:09

目录

枚举的定义

枚举的使用

values()的使用 

ordinal()的使用

valueOf() 的使用

compareTo()的使用 

枚举的优缺点


枚举的定义

枚举是JDK1.5以后引入的。主要用途:将一组常量组织起来,在引入枚举之前表示一组常量通常是使用定义常量的方式:

    public static final int RED = 1;public static final int GREEN = 2;public static final int BLACK = 3;

在引入枚举后我们可以将上述的常量举例直接写成类的形式:

public enum TestEnum {RED,GREEN,BLACK;
}

枚举的优点:将常量统一组织起来管理

应用场景:错误状态码、消息类型、颜色的划分.......

本质:我们所定义的枚举类,是java.lang.Enum的子类,虽然在写枚举类的时候未写出其继承Enum类,但是其默认继承了这个类.

枚举的使用

Enum类常用的方法

方法名称描述
values()以数组形式返回枚举类型的所有成员
ordinal()获取枚举成员的索引位置
valueOf()将普通字符串转换为枚举示例
compareTo()比较两个枚举成员在定义时的顺序

通过构造方法,定义出一个枚举类

public enum TestEnum {//枚举对象CAT("猫"),DOG("狗"),BIRD("鸟");public String animal;/*** 枚举的构造方法,默认是私有的* @param animal*/TestEnum(String animal) {this.animal = animal;}
}

values()的使用 

 values()方法是以数组形式返回枚举类型的成员,定义一个枚举类型的数组接收枚举成员,再将其输出.

    public static void main(String[] args) {TestEnum[] testEnums = TestEnum.values();for(TestEnum x : testEnums){System.out.println(x);}}

运行结果 

ordinal()的使用

利用ordinal()方法可以获取枚举成员的索引位置,具体使用如下所示:

    public static void main(String[] args) {TestEnum[] testEnums = TestEnum.values();for(TestEnum x : testEnums){System.out.println(x + " " + x.ordinal());}}

运行结果 

 

valueOf() 的使用

在定义好枚举类之后,利用valueOf()方法将输入的字符串转换为枚举示例,再对其进行判断

    public static void main(String[] args) {Scanner scan = new Scanner(System.in);while(scan.hasNext()) {TestEnum testEnum = TestEnum.valueOf(scan.next());switch(testEnum) {case CAT:System.out.println("猫");break;case DOG:System.out.println("狗");break;case BIRD:System.out.println("鸟");break;default:break;}}}

运行结果

compareTo()的使用 

通过对源码的分析,可以发现compareTo()方法的返回值为两个枚举对象的位置差值.

例如:

    public static void main(String[] args) {System.out.println(CAT.compareTo(DOG));System.out.println(DOG.compareTo(CAT));System.out.println(BIRD.compareTo(CAT));System.out.println(CAT.compareTo(BIRD));}

 运行结果

 以下列语句进行分析

System.out.println(CAT.compareTo(BIRD));

在定义枚举类时,CAT是默认下标为0的位置,BIRD是默认下标为2的位置,当两个进行比较时,返回的是CAT下标-BIRD下标,结果为-2; 

上述所有的示例代码已上传至gitee代码仓库中:点击查看代码 

枚举的优缺点

优点

1、枚举常量更简单安全;

2、枚举具有内置方法,代码更可观优雅

缺点

1、不可继承,无法扩展.

 

 

 

 


http://chatgpt.dhexx.cn/article/yynOpLoj.shtml

相关文章

枚举类的使用方法

一、理解枚举类型 枚举类型是Java 5中新增特性的一部分,它是一种特殊的数据类型,之所以特殊是因为它既是一种类(class)类型却又比类类型多了些特殊的约束,但是这些约束的存在也造就了枚举类型的简洁性、安全性以及便捷性。下面先来看看如何写…

java枚举类详解

一、初始枚举 枚举类型是Java 5中新增特性的一部分,它是一种特殊的数据类型,之所以特殊是因为它既是一种类(class)类型却又比类类型多了些特殊的约束,但是这些约束的存在也造就了枚举类型的简洁性、安全性以及便捷性。下面先来看看什么是枚举…

(JAVA): 自定义枚举和enum枚举类型------详解。

目录 言图: ☣☣一、基本介绍 ☣1、什么是枚举 ☣2、枚举的特点 ☣3、枚举的实现方式 ☣☣二、自定义类实现枚举 ☣1、自定义枚举的特点 ☣2、代码示例 ☣3、代码分析 ☣☣三、enum关键字实现枚举 ☣1、enum使用细节 ☣2、enum实现接口 ☣3、代码示例 …

色彩-基础理论

颜色三大指标 色相 色相是颜色的一个属性,只有黑白灰没有色相这个属性(那银灰色是什么?) 颜色的相貌,指的也是给颜色一个名字 例如:暗红、酒红、土黄、墨绿 饱和度 颜色的鲜艳程度 纯度 饱和度主要取决于含色成分和消色成分&a…

10bit、8bit色彩深度的区别

下面 一张图能说明区别,10bit能表现的颜色值范围更多

OpenCV色彩空间与通道

色彩空间与通道 色彩空间(Color Space)是指用来描述和表示图像颜色的一种方式。不同的色彩空间具有不同的颜色模型和表示方式,常见的色彩空间包括 RGB、CMYK、HSV、Lab 等。 通道(Channel)是指在某种色彩空间中独立表…

色彩空间(一):色彩空间基础

转载自:https://www.zhangxiaochun.com/color-space-1/ 序言 相信很多做设计的小伙伴都听说过 RGB 或者 CMYK 这样的概念,RGB 和 CMYK 就是两个典型的色彩空间模式,前者主要用于光学色彩展示(比如我们的电脑显示屏)&am…

【数字图像处理】色彩模型

作者介绍:小星的学习笔记,一名努力成为合格程序员的本科在读生 提示:本文仅为学习复习笔记,如有不对欢迎指正🎉🎉🎉 文章目录 前言 一、什么是色彩模型? 二、面向设备的色彩模型 …

色阶

Ps菜单:图层/新建调整图层/色阶 Layer/New Adjustment Layer/Levels Ps菜单:图像/调整/色阶 Image/Adjustments/Levels 快捷键:Ctrl/Cmd L 色阶 Levels命令可以调整图像的阴影、中间调和高光的强度级别,校正色调范围和色彩平衡。…

调色进阶工具的一些认识——色彩平衡

打开色彩平衡里面的内容,以及有哪些功能 我们打开CR里面也有阴影高光 阴影 高光 中间调什么概念呢,等于我们打开一张图片把这张图片分成了这三个部分。 阴影:在图指的是颜色偏暗的,那么根据这个颜色条红色部分同理可选颜色&a…

PS 色阶调整之算法公式原理详解及 Python 实现(色阶原理)

本文介绍了 PS 中色阶的实现原理及公式,并用 Python 实现,自测与 PS 的色阶调整效果基本完全一样(使用和 PS 中色阶相同的参数对比效果,包括各极限值,本文只实现了 RGB 整体色阶的处理,对各个通道的处理逻辑…

第四章 Opencv图像色彩空间与通道

文章目录 1.色彩空间1-1.RGB/BGR色彩空间1-2.GRAY色彩空间1-3.HSV色彩空间 2.通道2-1.拆分通道:split()方法1.拆BGR色彩空间图像的通道2.拆HSV色彩空间图像的通道 2-2.合并通道:merge()方法1.B、G、R 通道的合并2.H、S、V 通道的合并3.B、G、R、A 通道的…

halcon画出灰度直方图_Halcon绘制彩色深度图

此小文主要介绍颜色空间的转换,将深度图转为彩色,借以说明颜色转换与图像通道,下面是效果: 彩色深度图.jpg 深度图的生成 深度图的生成有便捷的算子可用,主要使用了binocular_disparity算子,输入左右两幅图…

【色度学】颜色的显色系统

我的理解: 色相:绝对量,表示颜色。 视明度:人眼视觉对某一刺激量知觉光的数量的多少,是知觉的绝对量。 明度:人眼视觉对某一刺激量直觉出其与周围白点或者最亮区域的相对亮度。 明度 视明度/白场视明度 视彩…

四、色彩空间

一、色彩空间 1、什么是色彩空间? 色彩空间是定义的颜色范围。 2、常见的色彩空间有哪些? ①RGB ②HSV 在OpenCV中,Hue的值为0~180,之所以不是360是因为,8位存不下,故进行归一化操作,使得H…

色彩系统总结

一、基本概念 1、几种色彩模式:RGB、HSB(HSV)、HSL RGB(Red 红色、Green 绿色、Blue 蓝色) HSB(Hue 色相、Saturation 饱和度、Brightness 明度) HSB 也称 HSV(Hue 色相、Saturation 饱和度、Value 值&…

色阶、灰度色彩模式、灰度等级

色彩三属性图解 色彩的客观三属性与主观三属性 在经典艺用色彩学中,我们只知道一种“色彩三属性”,实际上它只是对人们主观感受色彩的心理描述,建立在人的主观基础之上的对色彩属性的描述,色度学称之为“色彩的主观三属性”。 色彩…

图像的大小计算 位深和色深

图像的大小计算 1、位深和色深 位深:即在某一分辨率下,每一个像素点可以有多少种色彩来描述,单位为“bit”(位)。典型的色深是8-bit、16-bit、24-bit和32-bit。深度数值越高,可以获得更多的色彩。 图像深度是指存储每个像素所用的…

15.色彩空间

目录 一 色彩空间的粗略定义 二 色彩空间的分类 1.利用原色相混的比例表示的色彩空间 2.利用不同的概念表示的色彩空间 (1).色相 (2)饱和度 (3)明度 (4)亮度 三 HSV和HSL色…

2.1 色彩空间

色彩发送器 色彩认知:光源是出生点,光源发射出光线,光线通过直射反射折射等路径最终进入人眼。但是人眼接收到光线后,人眼的细胞产生了一系列化学反应。由此把产生的新号传入大脑,最终大脑对颜色产生了认知感知。 光的…