Java枚举类型学习笔记总结

枚举

枚举类型是一种整型,它的作用一是让数据看起来更直观,二是将数据圈定一个范围。不支持继承。

  1. 数据看起来更直观,即将该类型含有的数据用变量的形式呈现出来。
  2. 将数据圈定一个范围,即将该类型所有包含的数据一一列举出来。

例如:在打开一个文具盒之前,里面可能含有什么东西无法知道,通过定义枚举的办法,将里面可能含有的铅笔和钢笔表示出来,即枚举的作用所在。

代码如下

/* 这里定义了枚举类型的 box,规定 box 里面只含有 PENCIL 和 PEN 两个元素 */
public enum Box{PENCIL, PEN};

注意
枚举变量中的枚举元素系统是按照常量来处理的,故叫枚举常量,他们是不能进行普通的算术赋值的,PENCIL=1; 这样的写法是错误的。但是枚举值是默认从0开始的每次递增1的有序数值。

enum Box{PENCIL = 1, PEN = 2}; // 在Java中会产生报错

枚举类型的本质

尽管enum 看起来像是一种新的数据类型,事实上,enum是一种受限制的类,并且具有自己的方法。
在enum中,提供了一些基本方法:

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

name():返回实例名。

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

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

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

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

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

示例代码如下

public class TestEnum{
    enum Box{PENCIL, PEN};

    public static void main(String[] args) {
        System.out.println("打印所有的笔");
        Box pencil = Box.PENCIL;
        Box pencil1 = Box.PENCIL;
        Box pencil2 = Box.PENCIL;
        Box pen = Box.PEN;
        System.out.println("pencil的实例名是:" + pencil.name());
        System.out.println("pen的实例名是:" + pen.name());
        System.out.println("pencil 和 pen 是否为同一个对象:" + pencil.equals(pen));
        System.out.println("pencil1 和 pencil2 是否为同一个对象:" + pencil1.equals(pencil2));
        for(Box b : Box.values()){
            System.out.println(b + "的默认值:" +b.ordinal());
        }
    }
}

结果输出如下

打印所有的笔
pencil的实例名是:PENCIL
pen的实例名是:PEN
pencil 和 pen 是否为同一个对象:false
pencil1 和 pencil2 是否为同一个对象:true
PENCIL的默认值:0
PEN的默认值:1

前面提到在Java中直接赋值会产生报错,那么应该如何显示的为其赋值?可参考以下文章。
java定义枚举并赋值_java中枚举的特性是什么?如何赋值?

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值