热门标签 | 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类和普通类一样,可以实现接口


推荐阅读
  • 原文地址:https:www.cnblogs.combaoyipSpringBoot_YML.html1.在springboot中,有两种配置文件,一种 ... [详细]
  • 在springmvc框架中,前台ajax调用方法,对图片批量下载,如何弹出提示保存位置选框?Controller方法 ... [详细]
  • 先看官方文档TheJavaTutorialshavebeenwrittenforJDK8.Examplesandpracticesdescribedinthispagedontta ... [详细]
  • Java太阳系小游戏分析和源码详解
    本文介绍了一个基于Java的太阳系小游戏的分析和源码详解。通过对面向对象的知识的学习和实践,作者实现了太阳系各行星绕太阳转的效果。文章详细介绍了游戏的设计思路和源码结构,包括工具类、常量、图片加载、面板等。通过这个小游戏的制作,读者可以巩固和应用所学的知识,如类的继承、方法的重载与重写、多态和封装等。 ... [详细]
  • 本文介绍了lua语言中闭包的特性及其在模式匹配、日期处理、编译和模块化等方面的应用。lua中的闭包是严格遵循词法定界的第一类值,函数可以作为变量自由传递,也可以作为参数传递给其他函数。这些特性使得lua语言具有极大的灵活性,为程序开发带来了便利。 ... [详细]
  • 本文介绍了解决Netty拆包粘包问题的一种方法——使用特殊结束符。在通讯过程中,客户端和服务器协商定义一个特殊的分隔符号,只要没有发送分隔符号,就代表一条数据没有结束。文章还提供了服务端的示例代码。 ... [详细]
  • Android中高级面试必知必会,积累总结
    本文介绍了Android中高级面试的必知必会内容,并总结了相关经验。文章指出,如今的Android市场对开发人员的要求更高,需要更专业的人才。同时,文章还给出了针对Android岗位的职责和要求,并提供了简历突出的建议。 ... [详细]
  • 在说Hibernate映射前,我们先来了解下对象关系映射ORM。ORM的实现思想就是将关系数据库中表的数据映射成对象,以对象的形式展现。这样开发人员就可以把对数据库的操作转化为对 ... [详细]
  • 本文介绍了RPC框架Thrift的安装环境变量配置与第一个实例,讲解了RPC的概念以及如何解决跨语言、c++客户端、web服务端、远程调用等需求。Thrift开发方便上手快,性能和稳定性也不错,适合初学者学习和使用。 ... [详细]
  • 本文详细介绍了Java中vector的使用方法和相关知识,包括vector类的功能、构造方法和使用注意事项。通过使用vector类,可以方便地实现动态数组的功能,并且可以随意插入不同类型的对象,进行查找、插入和删除操作。这篇文章对于需要频繁进行查找、插入和删除操作的情况下,使用vector类是一个很好的选择。 ... [详细]
  • Android源码深入理解JNI技术的概述和应用
    本文介绍了Android源码中的JNI技术,包括概述和应用。JNI是Java Native Interface的缩写,是一种技术,可以实现Java程序调用Native语言写的函数,以及Native程序调用Java层的函数。在Android平台上,JNI充当了连接Java世界和Native世界的桥梁。本文通过分析Android源码中的相关文件和位置,深入探讨了JNI技术在Android开发中的重要性和应用场景。 ... [详细]
  • Java学习笔记之面向对象编程(OOP)
    本文介绍了Java学习笔记中的面向对象编程(OOP)内容,包括OOP的三大特性(封装、继承、多态)和五大原则(单一职责原则、开放封闭原则、里式替换原则、依赖倒置原则)。通过学习OOP,可以提高代码复用性、拓展性和安全性。 ... [详细]
  • Java在运行已编译完成的类时,是通过java虚拟机来装载和执行的,java虚拟机通过操作系统命令JAVA_HOMEbinjava–option来启 ... [详细]
  • 本文介绍了iOS数据库Sqlite的SQL语句分类和常见约束关键字。SQL语句分为DDL、DML和DQL三种类型,其中DDL语句用于定义、删除和修改数据表,关键字包括create、drop和alter。常见约束关键字包括if not exists、if exists、primary key、autoincrement、not null和default。此外,还介绍了常见的数据库数据类型,包括integer、text和real。 ... [详细]
  • Java中包装类的设计原因以及操作方法
    本文主要介绍了Java中设计包装类的原因以及操作方法。在Java中,除了对象类型,还有八大基本类型,为了将基本类型转换成对象,Java引入了包装类。文章通过介绍包装类的定义和实现,解答了为什么需要包装类的问题,并提供了简单易用的操作方法。通过本文的学习,读者可以更好地理解和应用Java中的包装类。 ... [详细]
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社区 版权所有