【java基础】枚举类(enum)
  TEZNKK3IfmPf 2023年11月12日 23 0

基本介绍

在java中有一种特殊的类型就是枚举类,对于一个有限的有固定值的集合,我们就可以考虑使用枚举类来进行表示,例如服装的大小为 小,中,大,超大。一个颜色集合为红色,蓝色,黄色,绿色

快速使用

枚举类使用enum进行标识,下面就是一个例子

public enum Color {
     
       
    BLUE, RED, GREEN, YELLOW
}

上面的代码我就定义了一个枚举类Color,里面有4个值,就代表4个对象(理解为4个Color实例对象),我们不能够通过new来进行构造对象,我们访问就是通过对象.属性来进行访问

    public static void main(String[] args) {
     
       
        Color blue = Color.BLUE;
        Color red = Color.RED;
        Color green = Color.GREEN;
        Color yellow = Color.YELLOW;
    }

对于枚举类的比较,我们通过==就可以了,不需要使用equals

        Color blue1 = Color.BLUE;
        Color blue2 = Color.BLUE;
        System.out.println(blue1 == blue2); // 输出true

字段、方法、构造器

我们可以为枚举类添加构造器,方法和字段,现在我们就来对上面的代码进行扩展

public enum Color {
     
       
    BLUE("蓝色"), RED("红色"), GREEN("绿色"), YELLOW("黄色");

    private String description;

    Color(String description) {
     
       
        this.description = description;
    }

    public String getDescription() {
     
       
        return description;
    }
}

我们在枚举类里面添加了一个description字段,用于颜色的中文表述,提供了一个构造器,我们在定义BLUE,RED,GREEN,YELLOW的时候就可以传入一个description。这样做有什么好处呢?
下面我就通过IDEA创建该Color对象,查看IDEA的提示
【java基础】枚举类(enum)
可以发现我们再使用枚举类的时候就可以很清楚的知道这个枚举类是用来表示什么的。

        Color color = Color.BLUE;
        System.out.println(color.getDescription()); // 输出蓝色

我们还可以使用枚举类里面的方法。

枚举类方法

在讲解方法之前,需要说明的是所有的枚举类都继承于Enum类,就好像所有类都继承Object类一样,下面介绍的方法都是基于Enum类的
【java基础】枚举类(enum)

toString方法

这个方法会返回枚举常量名

        Color green = Color.GREEN;
        Color yellow = Color.YELLOW;

        System.out.println(green.toString()); // 输出GREEN
        System.out.println(yellow.toString());// 输出YELLOW

valueOf方法

这个方法用于构建枚举类,传入枚举类常量名即可

        Color color = Color.valueOf("RED");
        System.out.println(color.getDescription()); // 输出红色
        // 如果不存在传入的枚举常量,那么会报错
        Color color1 = Color.valueOf("xxx");

输出如下

【java基础】枚举类(enum)

values方法

使用枚举类名进行调用,会返回所有枚举常量的数组

        Color[] colors = Color.values();
        for (Color c : colors) {
     
       
            System.out.println(c);
        }

ordinal方法

这个方法会返回枚举常量在enum中声明的位置,从0开始
【java基础】枚举类(enum)

        Color red = Color.RED;
        int ordinal = red.ordinal();
        System.out.println(ordinal);

在Color中RED是第二个定义的,所以ordinal会返回1

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月12日 0

暂无评论

推荐阅读
  TEZNKK3IfmPf   23天前   51   0   0 java
  TEZNKK3IfmPf   2024年05月31日   55   0   0 java
TEZNKK3IfmPf