热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Javaenum枚举类

基本介绍枚举的两种实现方式enum常用方法说明enum还有一些细节【基本介绍】(1)枚举对应英文enumeration简写enum(2)枚举是一组常量的组合(3)可以理解为:枚举属


基本介绍


枚举的两种实现方式


enum常用方法说明


enum还有一些细节






【基本介绍】

(1)枚举对应英文 enumeration 简写enum

(2)枚举是一组常量的组合

(3)可以理解为:枚举属于一种特殊的类,里面只包含一组有限的特定的对象。





【枚举的两种实现方式】



?自定义类实现枚举

(1)不需要提供setXx方法,因为枚举对象值通常为只读

(2)对枚举对象/属性使用final + static共同修饰,实现底层优化

(3)枚举对象名通常使用全部大写,常量的命名规范

(4)枚举对象根据需要,也可以有多个属性

例子:季节类(一共四个季节)

技术分享图片

技术分享图片



?使用 enum 关键字实现枚举

(1)当使用 enum 关键字开发一个枚举类的时候,默认会继承 Enum类,而且是一个final类。(可通过javap反编译证明)

技术分享图片

(2)传统的自定义类实现枚举
public static final Season SUMMER= new Season("夏天", "日头晒");
简化为:SUMMER("夏季", "日头晒")
这里必须知道,它调用的是哪个构造器

技术分享图片

(3)如果使用无参构造器创建枚举对象,则实参列表和小括号都可以省略。

(4)当有多个枚举对象时,使用逗号,间隔,最后一个分号结尾;

(5)枚举对象必须放在枚举类的行首。

技术分享图片

技术分享图片





【enum常用方法说明】

技术分享图片

技术分享图片

//调用toString方法,没有重写该方法的话,返回的是对象名
System.out.println(Season2.SPRING);
//name:返回对象名(常量名),不能重写
System.out.println(Season2.SPRING.name());
//ordinal:返回对象的编号,整型数据
int i = Season2.SPRING.ordinal();
System.out.println(Season2.SPRING.ordinal());
//compareTo:比较两个枚举常量,比较的是编号,返回的是调用该方法的编号减去作为实参引入的另一个枚举常量的编号
int n = Season2.SPRING.compareTo(Season2.WINTER);
System.out.println(Season2.SPRING.compareTo(Season2.WINTER));
//values:以数组形式返回当前枚举类的所有常量
Season2[] values = Season2.values();
for (Season2 season2:values){ //增强for循环
System.out.print(season2.ordinal() + "\t");
}
System.out.println();
//valueOf:将字符串转换成枚举对象,要求该字符串必须为已有的枚举常量名,否则报异常
Season2 fall = Season2.valueOf("AUTUMN");
System.out.println(fall.ordinal());
System.out.println(fall==Season2.AUTUMN); //true,表明这是同一个对象




【enum还有一些细节】

(1)使用enum实现的枚举类,不能再继承其他类(因为单继承机制,它已继承Enum类)

(2)enum类和普通类一样,可以实现接口


推荐阅读
  • 数据类型--char一、char1.1char占用2个字节char取值范围:【0~65535】char采用unicode编码方式char类型的字面量用单引号括起来char可以存储一 ... [详细]
  • 二维码的实现与应用
    本文介绍了二维码的基本概念、分类及其优缺点,并详细描述了如何使用Java编程语言结合第三方库(如ZXing和qrcode.jar)来实现二维码的生成与解析。 ... [详细]
  • H5技术实现经典游戏《贪吃蛇》
    本文将分享一个使用HTML5技术实现的经典小游戏——《贪吃蛇》。通过H5技术,我们将探讨如何构建这款游戏的两种主要玩法:积分闯关和无尽模式。 ... [详细]
  • 在1995年,Simon Plouffe 发现了一种特殊的求和方法来表示某些常数。两年后,Bailey 和 Borwein 在他们的论文中发表了这一发现,这种方法被命名为 Bailey-Borwein-Plouffe (BBP) 公式。该问题要求计算圆周率 π 的第 n 个十六进制数字。 ... [详细]
  • 本文介绍了如何通过C#语言调用动态链接库(DLL)中的函数来实现IC卡的基本操作,包括初始化设备、设置密码模式、获取设备状态等,并详细展示了将TextBox中的数据写入IC卡的具体实现方法。 ... [详细]
  • 本文详细介绍了C++中的构造函数,包括其定义、特点以及如何通过构造函数进行对象的初始化。此外,还探讨了转换构造函数的概念及其在不同情境下的应用,以及如何避免不必要的隐式类型转换。 ... [详细]
  • 本文探讨了如何通过优化 DOM 操作来提升 JavaScript 的性能,包括使用 `createElement` 函数、动画元素、理解重绘事件及处理鼠标滚动事件等关键主题。 ... [详细]
  • Beetl是一款先进的Java模板引擎,以其丰富的功能、直观的语法、卓越的性能和易于维护的特点著称。它不仅适用于高响应需求的大型网站,也适合功能复杂的CMS管理系统,提供了一种全新的模板开发体验。 ... [详细]
  • Java 中的十进制样式 getZeroDigit()方法,示例 ... [详细]
  • publicclassBindActionextendsActionSupport{privateStringproString;privateStringcitString; ... [详细]
  • JUnit下的测试和suite
    nsitionalENhttp:www.w3.orgTRxhtml1DTDxhtml1-transitional.dtd ... [详细]
  • 我的读书清单(持续更新)201705311.《一千零一夜》2006(四五年级)2.《中华上下五千年》2008(初一)3.《鲁滨孙漂流记》2008(初二)4.《钢铁是怎样炼成的》20 ... [详细]
  • 本文将详细介绍如何使用Java编程语言生成指定数量的不重复随机数,包括具体的实现方法和代码示例。适合初学者和有一定基础的开发者参考。 ... [详细]
  • 深入探讨前端代码优化策略
    本文深入讨论了前端开发中代码优化的关键技术,包括JavaScript、HTML和CSS的优化方法,旨在提升网页加载速度和用户体验。 ... [详细]
  • 1.绑定htmlcss1.1对象语法:  传给v-bind:class一个对象,以动态地切换class   ... [详细]
author-avatar
mobiledu2502882663
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有