java中关于枚举的知识点也是非常多的,枚举中的知识点可以细分成很多部分,想要全部掌握还是比较花费时间的。今天主要来简述一下枚举的一些基本的概念和方法,一起来了解一下吧。

首先说一下,枚举的概念。

enum的全称为enumeration, 是JDK 1.5中引入的新特性。在Java中,被 enum关键字修饰的类型就是枚举类型。代码如下所示:enum Color

{

RED

, GREEN

, BLUE

}

如果枚举不添加任何方法,枚举值默认为从0开始的有序数值。以Color枚举类型举例,它的枚举常量依次为 RED:0,GREEN:1,BLUE:2。

枚举的好处:可以将常量组织起来,统一进行管理。

枚举的典型应用场景:错误码、状态机等。

枚举类型的本质

尽管enum看起来像是一种新的数据类型,事实上,enum是一种受限制的类,并且具有自己的方法。

创建enum时,编译器会为你生成一个相关的类,这个类继承自java.lang.Enum。

java.lang.Enum类声明,代码如下所示:public abstract class Enum >

implements Comparable  , Serializable

{

...

}

接下来介绍一下,枚举的方法

在enum中,提供了一些基本方法:

1.values():返回enum实例的数组,而且该数组中的元素严格保持在enum中声明时的顺序。

2.name():返回实例名。

3.ordinal():返回实例声明时的次序,从0开始。

4.getDeclaringClass():返回实例所属的enum类型。

5.equals() :判断是否为同一个对象。

可以使用==来比较enum实例。

此外,java.lang.Enum实现了Comparable和Serializable接口,所以也提供compareTo()方法。

举例说明:展示enum的基本方法,代码展示如下:public class EnumMethodDemo

{

enum Color

{

RED

, GREEN

, BLUE;

}

enum Size

{

BIG

, MIDDLE

, SMALL;

}

public static void main(String args[])

{

System.out.println("=========== Print all Color ===========");

for (Color c: Color.values())

{

System.out.println(c + " ordinal: " + c.ordinal());

}

System.out.println("=========== Print all Size ===========");

for (Size s: Size.values())

{

System.out.println(s + " ordinal: " + s.ordinal());

}

Color green = Color.GREEN;

System.out.println("green name(): " + green.name());

System.out.println("green getDeclaringClass(): " + green.getDeclaringClass());

System.out.println("green hashCode(): " + green.hashCode());

System.out.println("green compareTo Color.GREEN: " + green.compareTo(Color.GREEN));

System.out.println("green equals Color.GREEN: " + green.equals(Color.GREEN));

System.out.println("green equals Size.MIDDLE: " + green.equals(Size.MIDDLE));

System.out.println("green equals 1: " + green.equals(1));

System.out.format("green == Color.BLUE: %b\n", green == Color.BLUE);

}

}

输出结果:=== === === == Print all Color === === === ==

RED ordinal: 0

GREEN ordinal: 1

BLUE ordinal: 2 ===

=== === == Print all Size === === === ==

BIG ordinal: 0

MIDDLE ordinal: 1

SMALL ordinal: 2

green name(): GREEN

green getDeclaringClass(): class org.zp.javase.enumeration.EnumDemo$Color

green hashCode(): 460141958

green compareTo Color.GREEN: 0

green equals Color.GREEN: true

green equals Size.MIDDLE: false

green equals 1: false

green == Color.BLUE: false

java中枚举的概念还是非常丰富的,它的方法也是比较多的。大家有兴趣的话可以多了解一下这方面的知识。想要了解更多java常见问题,敬请关注奇Q工具网。

推荐阅读:

什么是java枚举_java枚举的概念是什么?有哪些方法?相关推荐

  1. java的枚举_Java 枚举

    Java 枚举 知识点 概念 enum 的全称为 enumeration, 是 JDK 1.5 中引入的新特性. 在Java中,被 enum 关键字修饰的类型就是枚举类型.形式如下: enum Col ...

  2. java 入参 是 枚举_java 枚举 参数传递

    展开全部 这样做是不行的,原因是:Java中的对象实例化都是在堆中,如果是普通的类实例变量,比如在方法636f707962616964757a686964616f313333376166371中定义的 ...

  3. java分号_java枚举类型中分号的用法

    在java中写枚举类型的对象时,发生一个十分诡异的情况 public enum SeckillStatEnum { ;在没有写内容的时候,这个分号可有可无.但是如果里面写有方法,这个分号就必须带上. ...

  4. enum java 原理_Java 枚举实现原理

    枚举 反编译 示意枚举类如下: package com.jiankunking.test; public enum ApplicationInterfaceTypeEnum { dubbo(" ...

  5. java 枚举内嵌枚举_Java枚举益智游戏

    java 枚举内嵌枚举 假设我们有以下代码: enum Case {CASE_ONE,CASE_TWO,CASE_THREE;private static final int counter;priv ...

  6. java三板斧_Java 枚举使用三板斧

    Java 枚举使用三板斧 1 定义 public enum CountryEnums { ONE(1,"韩"),TWO(2,"魏"),THREE(3," ...

  7. java查询枚举_Java枚举的反向查找

    java的枚举常常被用来替代常量值,每个枚举值代表一个特定的常数. 在反序列化时有常常需要用到常数到枚举的转换,这就涉及到枚举的反向查找. 1.从枚举名反向查找枚举 这种方法是最先使用也最为简便的 可 ...

  8. java枚举怎么遍历,java遍历枚举_java枚举的两种遍历方法

    摘要 腾兴网为您分享:java枚举的两种遍历方法,余额宝,永安期货,易视云3,小睡眠等软件知识,以及幻想三国志4外传,损益表表格,2018微信最新的版本,贺卡,手机mp3格式转换器,cf挂无毒,火炬之 ...

  9. java 泛型枚举_java枚举泛型

    有! 泛型和枚举都是JDK1.5版本之后加入的新特性,泛型将程序代码的类型检查提前到了编译期间进行,枚举类型增强了程序代码的健壮性. 1. 泛型 在JDK1.5版本之前,如果在集合中添加了不同类型的数 ...

最新文章

  1. 你还不知道mysql中空值和null值的区别吗?
  2. java基础之Object类和异常
  3. 【图像处理】——正装照换底色Python
  4. ASP.NET高并发解决方案
  5. 是网关吗_智能家居网关功能这么多,你都知道吗?
  6. pdf与图片互相转换
  7. ubuntu16.04安装jekyll 3.3.1
  8. BZOJ1841 : 蚂蚁搬家
  9. 【开源】简单4步搞定QQ登录,无需什么代码功底【无语言界限】
  10. 纽芬兰纪念大学计算机系怎么样,纽芬兰纪念大学计算机
  11. [JDK8] Lambda
  12. Lesson 06 for Plotting in R for Biologists
  13. Julia : The Power Sum的算法
  14. 单点登录原理及实现方式
  15. python自动抠图软件_比PS还好用!Python 20行代码批量抠图
  16. Spark调优—参数调优
  17. 笔记本电脑光驱位置装固态硬盘流程
  18. 【历史上的今天】2 月 28 日:阿帕网退役;Quintus 收购 Mustang;同步电流磁芯存储器获得专利
  19. 项目管理知识体系指南 (六)
  20. 六线小县城实录美食篇

热门文章

  1. 分式怎么开根号_怎么打出根号二(教你如何写出√2的连分式)
  2. 安卓手机和电脑之间传文件最方便的方法
  3. 并发编程的艺术 读书笔记
  4. e580显卡驱动_搭载AMD RX 550独显!联想Thinkpad E580评测:能玩大型游戏的亲民商务本...
  5. 如何在手机上预览本地h5页面
  6. Python计算温度植被干旱指数(TVDI)
  7. Android8.0未知来源应用安装权限
  8. html电子邮件签名_有关HTML电子邮件的知识
  9. 博客已搬家,请移步 cnblogs.com/JonneyDong
  10. C# MVC《捷信达酒店管理系统》项目研发技术总结文献