什么是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工具网。

推荐阅读:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值