Java 基础复习 -- Enum 类

≡放荡痞女 提交于 2019-12-06 16:46:32

一、枚举类基本语法

在 Java SE5 中添加了一个看似很小的特性,即 enum 关键字,它使得我们在需要群组并使用枚举类型集时,可以很方便的处理。

创建一个简单的ColorEnum

public enum ColorEnum {
  RED,YELLOW,BULE,GREED,BLACK;
}

调用的收直接在方法中使用 ColorEnum.RED 即可

ColorEnum red = ColorEnum.RED;

而且 Enum 有一个特别实用的特性,它可以在switch语句内使用:

ColorEnum red = ColorEnum.RED;
switch (red) {
  case RED:
    System.out.println("this's red color");
    break;
  case BULE:
    System.out.println("this's bule color");
    break;
  default:
    System.out.println("this's other color");
}

由于 switch 是要在有限的可能值集合中进行选择,因此它和 enum 是绝佳的组合。

自定义构造方法枚举类如何定义?

public enum  RedisEnum {
    
    ADD(1, "add"), DEL(2, "delete"), query(3, "query");
    
    private Integer type;
    private String name;

    private RedisEnum(Integer type, String name) {
        this.type = type;
        this.name = name;
    }

    public Integer getType() {
        return type;
    }

    public String getName() {
        return name;
    }
}

枚举类提供的 API

values(); 可以遍历 enum 实例。values()方法返回 enum 实例的数组,而且该数组中的元素严格保持其在 enum 中声明时的顺序,因此可以在循环中使用 values()返回的数组。

valueOf(String key);

ordinal();返回一个 int值,这个是每个 enum 实例在声明时的次序,从 0 开始。

getDeclaringClass();enum 实例上调用这个方法可以获取其所属的 num 类

name();返回 enum 实例声明时的名字,这与使用 toString 方法效果相同

toString();返回 enum 实例声明时的名字

equals(Object obj);enum 重写了 equals 和 hashcode

hashCode();enum 重写了 equals 和 hashcode

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!