# Java,枚举类(enum-class) 的使用
*Java技术栏*
在 Java 中,枚举,是一种特殊的类,是一个 常用的 JAVA-编程知识,我们将使用案例与解释让大家认识枚举 。
## 开始

枚举在 Java 枚举类型是一种数据类型,它包含固定数量的常量。枚举在 Java 5 中引入,并且被视为一种数据类型。枚举在 Java 中被视为数据类型,你可以使用它们来创建枚举类型的变量、数组和集合。
在 Java 中,枚举类型被视为数据类型,你可以使用它们来创建枚举类型的变量、数组和集合。使用枚举可以使代码更加清晰、易于维护和可读性更好。在 Java 中,你可以使用关键字 enum 来定义一个枚举类型。
### 无自定义方法枚举类
#### 创建与定义
```java
public enum Test {
}
```
这段代码定义了一个名为 Test 的枚举类型。枚举类型是数据类型的一种,它包含固定数量的常量。在这段代码中,Test 枚举类型目前是空的,也就是说,它没有包含任何常量。
枚举在编程中有很多用途,例如表示星期、月份或者是一组特定的状态等。你可以为枚举类型添加方法、构造函数,甚至是嵌套的枚举类型,例如下面是一个定义了一些常量的枚举类。
```java
public enum Test {
    VALUE1,
    VALUE2,
    VALUE3;
}
```
不过这种枚举并不能做些什么,它是一种无方法的枚举类,可以用来进行比较等操作,下面是一个使用的示例。
#### 使用与操作
##### 查看枚举数值
枚举类的数值其实就是其本身的字符串,我们可以看下面的例子!
```java
public class MAIN {
    public static void main(String[] args) {
        // 判断两个枚举类是否相等
        System.out.println(Test.VALUE1);
        System.out.println(Test.VALUE2);
        System.out.println(Test.VALUE3);
    }
}
```
在上面,我们使用了打印语句直接将定义的三个枚举数据进行了打印操作,那么这段代码将分别打印这三个常量的名称。因为它们是不同的枚举值,所以结果如下。
```
VALUE1
VALUE2
VALUE3
进程已结束,退出代码0
```
##### 枚举对象比较
枚举类与枚举类之间支持 `=` 以及 `!=` 运算符,这使得我们可以在开发中使用常量来进行配置参数的指定等操作,下面是一个示例。
```java
public class MAIN {
    public static void main(String[] args) {
        // 判断两个枚举类是否相等
        System.out.println(Test.VALUE1 == Test.VALUE2);
        System.out.println(Test.VALUE2 == Test.VALUE2);
        System.out.println(Test.VALUE3 == Test.VALUE2);
    }
}
```
我们在代码中进行了三个枚举类,分别与 `Test.VALUE2` 的比较,最终可以看到,只有 `        System.out.println(Test.VALUE2 == Test.VALUE2);` 返回了true。
```
false
true
false
进程已结束,退出代码0
```
##### 枚举对象的 valueOf 函数
在Java中,我们不仅仅可以通过代码引用的方式获取到枚举类,其实也可以使用 `valueOf` 函数来实现效果,valueOf 是枚举类中的一个静态方法,用于将字符串转换为对应的枚举值。它的作用是将字符串名称转换为对应的枚举常量,例如我们想要通过字符串获取到 `Test.VALUE2` 枚举对象,可以像下面一样做。
```java
public class MAIN {
    public static void main(String[] args) {
        // 获取到枚举类
        final Test value2 = Test.valueOf("VALUE2");
        // 打印其是否是 value2
        System.out.println(value2 == Test.VALUE2);
    }
}
```
我们直接通过 valueOf 函数解析字符串 获取到了枚举类,并使用 `==` 运算符判断了其是否为 value2 枚举类。
```
true
进程已结束,退出代码0
```
### 有自定义方法枚举类
=未完待续=
------
***操作记录***
作者:[root](http://www.lingyuzhao.top/index.html?search=1 "root")
操作时间:2023-12-08 10:35:38 星期五
事件描述备注:保存/发布
[](如果不需要此记录可以手动删除,每次保存都会自动的追加记录)