文章目录
Java枚举类(enum)重点用法和内部方法,附代码
一、Java 枚举类(enum) 详解5种常见的用法
1.常量
类中的对象的个数是有限的,而且很容易就确实,比如星期天、季节、支付状态、付款方式…
在JDK1.5 之前,我们定义常量都是:修饰 public static final…
现在:public enum Color {
RED, GREEN, BLANK, YELLOW
} //枚举实例的写法都是大写,单词之间都用下划线进行分割
2.支持switch
JDK1.8之后的switch语句支持byte,short,int,char,数组,enum类型,使用枚举,能让我们的代码可读性更强。
switch(枚举类名){
case 枚举对象名:
break;
…
}
3.向枚举中添加新方法
如果打算自定义自己的方法,那么必须在enum实例序列的最后添加一个"分号"。而且 Java 要求必须先定义 enum 实例。
4.覆盖枚举的方法
如:toString()方法覆盖,因此拿到枚举对象,直接打印输入此对象的信息而不是一个地址。
5.实现接口(下面代码有测试)
1)有的枚举都继承自java.lang.Enum类。由于Java 不支持多继承,所以枚举对象不能再继承其他类。
2)枚举只能实现某一个接口。所以就得去重写接口中的方法。重写方法可以是针对于整个枚举类去重写,方法实现功能;
也可以对其中每一个枚举对象都去重写接口方法以实现给自的功能和需求,具体操作如:SPRING("春天", 1) { //文章下面代码中截取 @Override public void show() { System.out.println("11"); } }, ...
二、 注意点:
1.枚举类是一般的类名都是xxxEnum,枚举实例的写法都是大写,单词之间都用下划线进行分割,
枚举实例之间用逗号进行隔开,加入枚举类中要写其他方法,最后一个枚举实例后一定要加分号;
2.通过类名可以直接调用枚举实例。当多次调用同一个实例时,其实都是在调用同一个实例,也就是说两个的地址是同一个
Java枚举类比较是可以直接使用==或者equals的,原因是枚举类是继承于java.lang.Enum类
而这个类是重写了equals方法的,方法里就是直接是,return this == other(比较对象,传入的参数)
Enum类中重写了equals方法源码:
三、内部常用方法:
1.toString():
返回当前枚举类对象常量的名称。拿到枚举对象,直接打印输入此对象的信息而不是一个地址
2.values():
返回枚举类型的对象数组,该方法可以方便的遍历所有的枚举名称
3.valuesOf(String str):
可以把一个字符串转为对应的枚举对象。,返回对象信息。
四、枚举类(enum)测试代码:
package com.cheng.Enum;
import java.util.Arrays;
public class EnumTest1 {
public static void main(String[] args)