什么是java枚举_java枚举的概念是什么?有哪些方法?
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枚举的概念是什么?有哪些方法?相关推荐
- java的枚举_Java 枚举
Java 枚举 知识点 概念 enum 的全称为 enumeration, 是 JDK 1.5 中引入的新特性. 在Java中,被 enum 关键字修饰的类型就是枚举类型.形式如下: enum Col ...
- java 入参 是 枚举_java 枚举 参数传递
展开全部 这样做是不行的,原因是:Java中的对象实例化都是在堆中,如果是普通的类实例变量,比如在方法636f707962616964757a686964616f313333376166371中定义的 ...
- java分号_java枚举类型中分号的用法
在java中写枚举类型的对象时,发生一个十分诡异的情况 public enum SeckillStatEnum { ;在没有写内容的时候,这个分号可有可无.但是如果里面写有方法,这个分号就必须带上. ...
- enum java 原理_Java 枚举实现原理
枚举 反编译 示意枚举类如下: package com.jiankunking.test; public enum ApplicationInterfaceTypeEnum { dubbo(" ...
- java 枚举内嵌枚举_Java枚举益智游戏
java 枚举内嵌枚举 假设我们有以下代码: enum Case {CASE_ONE,CASE_TWO,CASE_THREE;private static final int counter;priv ...
- java三板斧_Java 枚举使用三板斧
Java 枚举使用三板斧 1 定义 public enum CountryEnums { ONE(1,"韩"),TWO(2,"魏"),THREE(3," ...
- java查询枚举_Java枚举的反向查找
java的枚举常常被用来替代常量值,每个枚举值代表一个特定的常数. 在反序列化时有常常需要用到常数到枚举的转换,这就涉及到枚举的反向查找. 1.从枚举名反向查找枚举 这种方法是最先使用也最为简便的 可 ...
- java枚举怎么遍历,java遍历枚举_java枚举的两种遍历方法
摘要 腾兴网为您分享:java枚举的两种遍历方法,余额宝,永安期货,易视云3,小睡眠等软件知识,以及幻想三国志4外传,损益表表格,2018微信最新的版本,贺卡,手机mp3格式转换器,cf挂无毒,火炬之 ...
- java 泛型枚举_java枚举泛型
有! 泛型和枚举都是JDK1.5版本之后加入的新特性,泛型将程序代码的类型检查提前到了编译期间进行,枚举类型增强了程序代码的健壮性. 1. 泛型 在JDK1.5版本之前,如果在集合中添加了不同类型的数 ...
最新文章
- 你还不知道mysql中空值和null值的区别吗?
- java基础之Object类和异常
- 【图像处理】——正装照换底色Python
- ASP.NET高并发解决方案
- 是网关吗_智能家居网关功能这么多,你都知道吗?
- pdf与图片互相转换
- ubuntu16.04安装jekyll 3.3.1
- BZOJ1841 : 蚂蚁搬家
- 【开源】简单4步搞定QQ登录,无需什么代码功底【无语言界限】
- 纽芬兰纪念大学计算机系怎么样,纽芬兰纪念大学计算机
- [JDK8] Lambda
- Lesson 06 for Plotting in R for Biologists
- Julia : The Power Sum的算法
- 单点登录原理及实现方式
- python自动抠图软件_比PS还好用!Python 20行代码批量抠图
- Spark调优—参数调优
- 笔记本电脑光驱位置装固态硬盘流程
- 【历史上的今天】2 月 28 日:阿帕网退役;Quintus 收购 Mustang;同步电流磁芯存储器获得专利
- 项目管理知识体系指南 (六)
- 六线小县城实录美食篇
热门文章
- 分式怎么开根号_怎么打出根号二(教你如何写出√2的连分式)
- 安卓手机和电脑之间传文件最方便的方法
- 并发编程的艺术 读书笔记
- e580显卡驱动_搭载AMD RX 550独显!联想Thinkpad E580评测:能玩大型游戏的亲民商务本...
- 如何在手机上预览本地h5页面
- Python计算温度植被干旱指数(TVDI)
- Android8.0未知来源应用安装权限
- html电子邮件签名_有关HTML电子邮件的知识
- 博客已搬家,请移步 cnblogs.com/JonneyDong
- C# MVC《捷信达酒店管理系统》项目研发技术总结文献