enum java用法
一、什么是Enum
在Java中,Enum是一种特殊的类,用于表示有限个、不可变的状态。它提供了一种简单而有效的方式来定义一组常量,常用于枚举类型和枚举成员的访问控制。
二、Enum的用法
1. 定义Enum
Enum的声明与普通类的声明类似,只需要在类声明前加上关键字enum即可。例如:
```java
public enum Weekday {
    MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY
}
```
上述代码定义了一个Weekday枚举类型,其中包含了星期一至星期日的枚举成员。
2. 使用Enum
Enum可以像普通变量一样使用,例如:
```java
Weekday today = Weekday.MONDAY;
int dayOfWeek = (today == Weekday.MONDAY) ? 1 : 0;
```
上述代码将Weekday枚举成员today赋值给变量today,并根据today的值来设置变量dayOfWeek的值。
3. 枚举常量访问控制
默认情况下,Enum成员是public的,可以通过类名直接访问。但是,为了提高代码的可读性和安全性,可以给枚举成员添加访问控制修饰符,例如private、protected或public。例如:
```java
public enum Color {
    RED(260, 0, 0), GREEN(0, 255, 0), BLUE(0, 0, 255);
    private int r, g, b; // private fields for RGB values
    // constructor and getter methods for r, g, b fields
    private Color(int r, int g, int b) { this.r = r; this.g = g; this.b = b; }
    public int getR() { return r; } // getter method for r field
    public int getG() { return g; } // getter method for g field
enum怎么用
}
```
上述代码将Color枚举成员的RGB值封装在private字段中,并提供了getter方法来获取这些值。这样可以提高代码的可读性和安全性。
三、Enum的常用方法
Enum中提供了一些常用方法,例如valueOf()和values()方法。
1. valueOf()方法:根据枚举成员名称来获取枚举实例。例如:Color.valueOf("RED")将返回Color枚举中的RED实例。
2. values()方法:返回一个包含所有枚举成员的数组。可以使用这个方法来遍历所有枚举成员。
四、Enum的注意事项
1. Enum是final类,不能继承其他类或实现接口。但是,可以重写Enum中的方法来扩展其功能。
2. Enum成员默认是public的,可以通过类名直接访问。如果需要限制访问权限,可以使用访问控制修饰符来修饰成员。
3. Enum可以作为泛型类型参数,例如List<Weekday>表示一个包含Weekday枚举实例的列表。
4. Enum中的字段可以是private或protected,也可以是public。但是,如果字段是private或protected,那么只能通过Enum类中的getter方法来获取字段值。如果字段是public,那么可以直接访问。