枚举(enum)详解与用途-Java学习笔记

枚举在Java中用于表示固定的有限种类型,它是一个特殊的类,继承自Enum并包含常量对象。枚举的构造器私有且用final、static修饰,每个常量在静态代码块中初始化。枚举常量可以通过ordinal方法在switch-case语句中使用。此外,枚举还可用于构建安全的单例模式,并能实现业务功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、需要了解的知识点

  1. 枚举:在数学和计算机科学理论中,一个集的枚举是列出某些有穷序列集的所有成员的程序,或者是一种特定类型对象的计数(来源:百度百科),说人话就是:枚举用来表示事物固定的有限种类型,是固定的多个常量对象的集合。

二、枚举的本质

  • 下面我们使用一个例子对枚举的本质进行解释说明
  1. 测试源代码如下
    enum Season{
    	SPRING,SUMMER,AUTUMN,WINTER
    }
    
  2. 使用反编译工具反编译生成的字节码
    在这里插入图片描述
  3. 分析
    (1) 通过将生成的字节码文件反编译后,我们可以看到枚举其实就是一个特殊的类,这个类继承于Enum类,且类是使用final修饰的,意味着他不能被其他类继承。
    (2) 我们定义的枚举类型的值是当前枚举类的实例,构造器是私有的只能本类使用,且用final,static修饰表示为静态的常量对象并在静态代码块中为其赋予了初值,并且每一个常量对象在创建时都带有一个int类型的序号。
    (3)还有两个枚举的静态操作方法,功能如上图所示。

三、枚举的用途

  1. 最常用的用来表示事物有限的类型。
  2. 因为枚举类继承自Enum类,所以所有枚举对象可以调用Enum类中的方法。
    在这里插入图片描述
  3. switch -case语句支持枚举类型,是因为switch-case当中使用的是枚举常量对象对应的ordinal方法所返回的int类型的值。
  4. 枚举可以构造单例模式,使用枚举构造单例模式非常安全,即使使用反射也不能创建对象。
    在这里插入图片描述
  • 从第四点可以看出枚举并不一定局限于固定的形式(用来表示固定的类型),它也可以用来在其中编写方法,实现业务功能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值