当前位置: 首页 > article >正文

Java 枚举类

枚举类型

    在Java编程语言中,枚举类(Enum Class)是一种特殊的类,它用于表示一组固定的常量。这些常量通常用于定义变量的合法取值,比如一周的天数、交通信号灯的颜色等。枚举类提供了一种类型安全的方式来使用这些常量,使得代码更加清晰易懂,同时也减少了出错的可能性。

枚举类型的使用

定义枚举类

public enum Season {
    ONE("ONE1",11,2),
    TWO("TWO1",22,3),
    THREE("THREE3",33,4),
    FOUR("FOUR",44,5);
}

    其中:SPRING,SUMMER,AUTUMN,WINTER都是该枚举类的实例,也就是该类只有四个对象。

枚举类的常用方法

方法说明
name()获取枚举常量名称
values()获取枚举类型中所有枚举常量
ordinal()获取枚举常量的序号
valueOf(String name)根据枚举常量名称获取对应枚举常量
compareTo()     比较枚举常量声明的顺序
toString()返回枚举常量的字符串表示
public enum Season {
    ONE("ONE1",11,2),
    TWO("TWO1",22,3),
    THREE("THREE3",33,4),
    FOUR("FOUR",44,5);
    private String namer;
    private int or;
    private int c;

    private Season(String namer,int or,int c){
        this.namer = namer;
        this.or = or;
        this.c = c;
    }

    public static void main(String[] args) {
        System.out.println(Season.ONE);
        System.out.println(Season.valueOf("ONE"));
        System.out.println(Season.ONE.name());
        System.out.println(Season.TWO.ordinal());
        System.out.println("-------------------");
        System.out.println(Season.ONE.namer);
        System.out.println(Season.ONE.or);
        System.out.println(Season.ONE.c);
        System.out.println("-------------------");
        System.out.println(Season.ONE.compareTo(Season.THREE));
        System.out.println(Season.THREE.compareTo(Season.ONE));

    }
}

        


注: 

ordinal()返回的是枚举常量在定义时的序号,从0开始。

compareTo()是比较常量在定义时的顺序,所以会出现负数

可以看到输出了3个ONE,这3个方法的区别是: 

System.out.println(Season.ONE);

    这行代码直接引用了枚举 Season 中定义的 ONE 常量。当这行代码执行时,它会打印出 ONE 这个枚举常量的 toString() 方法返回的字符串。在大多数情况下,枚举的 toString() 方法默认返回的是枚举常量的名称(在这个例子中就是 "ONE")。

System.out.println(Season.valueOf("ONE"));

    这行代码使用了 Season 枚举的 valueOf(String name) 方法。这个方法接收一个字符串参数,并返回与该字符串名称匹配的枚举常量。如果找到了匹配的枚举常量,它会返回这个常量;如果没有找到,它会抛出 IllegalArgumentException。在这个例子中,由于 "ONE" 是 Season 枚举中的一个有效常量名称,因此 Season.valueOf("ONE") 会返回 Season.ONE。然后,System.out.println 会打印出 Season.ONE 的 toString() 方法返回的字符串,即 "ONE"。

System.out.println(Season.ONE.name());

    这行代码调用了 Season.ONE 的 name() 方法。枚举的 name() 方法返回的是枚举常量的名称,作为一个字符串。在这个例子中,Season.ONE.name() 会返回 "ONE"。因此,这行代码会打印出 "ONE"。


http://www.kler.cn/news/351023.html

相关文章:

  • STMicroelectronics 意法半导体芯片选型表
  • 力扣2528.最大化城市的最小电量
  • 激活函数(sigmoid、tanh、ReLu)
  • Java中的反射是什么?如何使用反射API?
  • React与TypeScript
  • 聚链成网,趣链科技参与 “跨链创新联合体”建设
  • 【深度学习】阿里云GPU服务器免费试用3月
  • 【Python】 list dict数据合并汇总demo
  • LinkedList和链表(上)
  • no WeWorkFinanceSdk in java.library.path
  • 嵌入式数据结构中树与查找方法实现
  • Java 8 Stream API:从基础到高级,掌握流处理的艺术
  • RabbitMQ 入门(四)SpringAMQP五种消息类型
  • 在 Windows 环境下,Git 默认会自动处理 CRLF 和 LF 之间的转换。
  • 探索MB15镁合金棒:高强度与轻质性的完美结合
  • 编译Thingsboard3.8.0的过程记录
  • 【人工智能】解释性AI(Explainable AI)——揭开机器学习模型的“黑箱”
  • 架构师备考-背诵精华(架构开发方法)
  • 利用LangGraph和Waii实现你的chat2db!
  • 嵌入式工业显示器在食品生产行业的应用
  • 机器学习面试笔试知识点-线性回归、逻辑回归(Logistics Regression)和支持向量机(SVM)
  • postgresql 安装
  • 系统开发基础——开发模型
  • 数据结构 ——— 顺序表和链表的区别以及各自的优缺点
  • 使用Tftpd32工具数据互传是一种什么体验?SSD201/202D开发板演示,深圳触觉智能嵌入式方案商
  • Git上传命令汇总