Java枚举(Enum)的使用

简介: Java枚举(Enum)的使用

一、枚举类型的定义

       我们需要将不同变量编号时,通常将其变量进行赋值为1,2,3...但是这么做有时候会吧1误以为某个变量,这时我们可以直接用枚举来组织,这样一来就有了枚举类型。

如图:

上面的变量都有序了,上面变量没赋值,序号默认为0,1,2

二、枚举类型的使用

(一)、枚举类型的常用方法

(二)、枚举的简单使用

先创建一个枚举类

     代码如下:

public enum TestEnum {
    RED(1, "红色"),GREEN(2, "绿色"),BLACK(3, "黑色");
    private int ordinal;
    private String color;
    //构造方法默认为私有的
    private TestEnum(int ordinal, String color) {
        this.ordinal = ordinal;
        this.color = color;
    }

       (1)、和switch的搭配使用

代码如下:

public static void main(String[] args) {
        TestEnum color = RED;
        switch (color) {
            case RED:
                System.out.println("红色");
                break;
            case GREEN:
                System.out.println("绿色");
                break;
            case BLACK:
                System.out.println("黑色");
                break;
            default:
                System.out.println("error");
                break;
        }
    }

这种情况会打印  红色

(2)、枚举类型的values方法

代码如下:

public static void main(String[] args) {
        TestEnum[] testEnum = TestEnum.values();
        for(int i = 0; i < testEnum.length; i++) {
            //打印枚举所有变量的序号
            System.out.println(testEnum[i].ordinal);
            //打印枚举所有变量的下标
            System.out.println(testEnum[i].ordinal());
            //打印枚举所有变量的color值
            System.out.println(testEnum[i].color);
        }

结果如下

(3)、枚举类型的valueOf方法

代码如下:

public static void main(String[] args) {
        //以普通字符串转换为枚举实例
        TestEnum testEnum = TestEnum.valueOf("GREEN");
        System.out.println(testEnum);
    }

结果如下:

(4)、枚举类型的compareTo方法

代码如下:

public static void main(String[] args) {
        //比较两个枚举成员定义时的顺序
        System.out.println(RED.compareTo(BLACK));
    }

结果如下:

三、优点和缺点

优点:

       1、枚举具有内置方法,代码更简洁,优雅

       2、枚举常量更具安全性

缺点:不能继承,无法扩展


都看到这里了,点个赞再走呗,谢谢谢谢谢

相关文章
|
2天前
|
安全 Java 测试技术
🎉Java零基础:全面解析枚举的强大功能
【10月更文挑战第19天】本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!
92 60
|
2月前
|
安全 Java 索引
Java——反射&枚举
本文介绍了Java反射机制及其应用,包括获取Class对象、构造方法、成员变量和成员方法。反射允许在运行时动态操作类和对象,例如创建对象、调用方法和访问字段。文章详细解释了不同方法的使用方式及其注意事项,并展示了如何通过反射获取类的各种信息。此外,还介绍了枚举类型的特点和使用方法,包括枚举的构造方法及其在反射中的特殊处理。
58 9
Java——反射&枚举
|
2月前
|
Java
java小工具util系列4:基础工具代码(Msg、PageResult、Response、常量、枚举)
java小工具util系列4:基础工具代码(Msg、PageResult、Response、常量、枚举)
75 5
|
2月前
|
安全 Java 开发者
Java 枚举(enum)详解
Java 中的枚举(`enum`)是一种特殊的数据类型,用于定义一组固定的常量,提升代码的类型安全性和可读性。枚举使用 `enum` 关键字定义,支持方法和构造函数,具有类型安全、单例、自动序列化等特点,并且可以遍历和用于 `switch` 语句中。实际应用包括状态机、指令集、类型标识等场景。枚举使代码更加清晰易维护。
|
3月前
|
Java
Java枚举使用的基本案例
这篇文章是关于Java枚举的基本使用,通过一个指令下发的代码案例,展示了如何定义枚举、使用枚举以及如何通过枚举实现指令的匹配和处理。
|
3月前
|
Java 开发者
在Java编程中,if-else与switch作为核心的条件控制语句,各有千秋。if-else基于条件分支,适用于复杂逻辑;而switch则擅长处理枚举或固定选项列表,提供简洁高效的解决方案
在Java编程中,if-else与switch作为核心的条件控制语句,各有千秋。if-else基于条件分支,适用于复杂逻辑;而switch则擅长处理枚举或固定选项列表,提供简洁高效的解决方案。本文通过技术综述及示例代码,剖析两者在性能上的差异。if-else具有短路特性,但条件增多时JVM会优化提升性能;switch则利用跳转表机制,在处理大量固定选项时表现出色。通过实验对比可见,switch在重复case值处理上通常更快。尽管如此,选择时还需兼顾代码的可读性和维护性。理解这些细节有助于开发者编写出既高效又优雅的Java代码。
43 2
|
4月前
|
Java
Java里的enum类型可以用这swich里吗
Java里的enum类型可以用这swich里吗
29 9
|
3月前
|
安全 Java 编译器
|
4月前
|
存储 缓存 Java
java枚举消除冗余代码问题之findByName和findByValue方法工作时的问题如何解决
java枚举消除冗余代码问题之findByName和findByValue方法工作时的问题如何解决
|
4月前
|
安全 Java
Java进阶之枚举
【7月更文挑战第11天】Java枚举是Java 5引入的特性,用于定义固定常量集合,如星期。枚举是继承自`java.lang.Enum`的特殊类,编译后成为final类,每个枚举值是静态final实例。定义枚举用`enum`关键字,如`public enum Weekday {MONDAY, TUESDAY, ...}`。枚举可包含方法和变量,能实现接口但不能继承其他类。例如,`Weekday`枚举可实现`Describe`接口,提供`describe()`方法。在实际应用中,枚举常用于表示如响应状态等固定选项,便于类型安全和代码阅读。
37 8