Java是一门面向对象的编程语言,因此在Java中,枚举(enum)也扮演着重要的角色。枚举其实就是一组预定义的常量,它们可以被用作一个变量的值,这个变量可以是任何数据类型,如int、char等等。同时Java的枚举也支持实例方法、构造器、静态常量等特性,下面将介绍Java枚举的使用方法。
一、定义枚举类型(enum)
定义枚举类型主要有两种方式:
1. 声明枚举类型
public enum Season {
SPRING,
SUMMER,
AUTUMN,
WINTER;
}
上述代码就定义了一个Season类型的枚举,其中包含了4个枚举实例。枚举实例应该全部采用大写字母命名,多个单词之间使用下划线分割。
2. 使用构造器和域定义枚举类型
public enum Season {
SPRING("春天", "温暖"),
SUMMER("夏天", "炎热"),
AUTUMN("秋天", "凉爽"),
WINTER("冬天", "寒冷");
private String name;
private String desc;
Season(String name, String desc) {
this.name = name;
this.desc = desc;
}
public String getName() {
return name;
}
public String getDesc() {
return desc;
}
}
上述代码定义了一个Season类型的枚举,其中包含了4个枚举实例。每个枚举实例都包含了两个属性值:name和desc。同时该枚举还包含了一个带参构造函数用于初始化实例,以及两个公共方法getName()和getDesc(),用于获取属性值。
二、使用枚举类型
1. 访问枚举实例
通过Season.SPRING这种方式就可以访问到SPRING实例。
Season season = Season.SPRING;
System.out.println(season); // 输出:SPRING
2. 借助switch语句处理枚举类型
通过switch语句可以很方便地处理枚举类型。
Season season = Season.SUMMER;
switch (season) {
case SPRING:
System.out.println("春天来了");
break;
case SUMMER:
System.out.println("夏天来了");
break;
case AUTUMN:
System.out.println("秋天来了");
break;
case WINTER:
System.out.println("冬天来了");
break;
}
3. 遍历枚举实例
可以通过Season.values()方法获取到Season枚举类型的所有实例,然后就可以对它们进行遍历。
for (Season season : Season.values()) {
System.out.println(season);
}
三、枚举的高级用法
1. 实现接口
枚举类型可以实现接口,这样就可以为每一个枚举实例提供特定实现。
public interface IEnum {
int getValue();
}
public enum Season implements IEnum {
SPRING(1),
SUMMER(2),
AUTUMN(3),
WINTER(4);
private int value;
Season(int value) {
this.value = value;
}
@Override
public int getValue() {
return value;
}
}
2. 覆盖枚举方法
可以为枚举类型定义自己的方法。
public enum Season {
SPRING("春天", "温暖"),
SUMMER("夏天", "炎热"),
AUTUMN("秋天", "凉爽"),
WINTER("冬天", "寒冷");
private String name;
private String desc;
Season(String name, String desc) {
this.name = name;
this.desc = desc;
}
public String getName() {
return name;
}
public String getDesc() {
return desc;
}
@Override
public String toString() {
return this.name + "(" + this.desc + ")";
}
}
3. 自定义枚举类型
可以自定义枚举类型,这样可以更好地管理自己的代码。
public class Gender {
private String name;
private Gender(String name) {
this.name = name;
}
public final static Gender MALE = new Gender("男");
public final static Gender FEMALE = new Gender("女");
public String getName() {
return name;
}
}
End
Java枚举的使用方法并不复杂,但是却十分灵活。希望通过本篇文章的介绍能够让大家更好地掌握枚举的使用方法,同时也能够在工作中灵活运用枚举类型。