Java枚举常见7种用法("Java枚举的7种常用技巧详解")
原创
一、定义枚举类型
Java枚举类型是Java 5引入的一个特性,它允许开发者定义一组具有特定语义的常量集合。枚举类型通常用于即一组固定的、命名的常量集合,如星期、月份、方向等。
public enum Weekday {
MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY
}
二、枚举类型的方法
枚举类型可以像普通类一样拥有属性和方法。下面是一个明了的示例,展示了怎样在枚举类型中定义方法和属性。
public enum Weekday {
MONDAY(1), TUESDAY(2), WEDNESDAY(3), THURSDAY(4), FRIDAY(5), SATURDAY(6), SUNDAY(7);
private int value;
Weekday(int value) {
this.value = value;
}
public int getValue() {
return value;
}
public String getName() {
return name();
}
}
三、枚举类型的switch语句
Java枚举类型可以用于switch语句,这允许枚举类型在处理多选分支逻辑时更加方便。
public class EnumTest {
public static void main(String[] args) {
Weekday today = Weekday.FRIDAY;
switch (today) {
case MONDAY:
System.out.println("Today is Monday");
break;
case TUESDAY:
System.out.println("Today is Tuesday");
break;
case WEDNESDAY:
System.out.println("Today is Wednesday");
break;
case THURSDAY:
System.out.println("Today is Thursday");
break;
case FRIDAY:
System.out.println("Today is Friday");
break;
case SATURDAY:
System.out.println("Today is Saturday");
break;
case SUNDAY:
System.out.println("Today is Sunday");
break;
}
}
}
四、枚举类型的比较
枚举类型提供了equals()和compareTo()方法来比较枚举值。equals()方法用于检查两个枚举值是否相同,而compareTo()方法用于比较两个枚举值的顺序。
public class EnumTest {
public static void main(String[] args) {
Weekday today = Weekday.FRIDAY;
Weekday tomorrow = Weekday.SATURDAY;
if (today.equals(Weekday.FRIDAY)) {
System.out.println("Today is Friday");
}
if (today.compareTo(tomorrow) < 0) {
System.out.println("Today comes before tomorrow");
}
}
}
五、枚举类型的迭代
可以使用values()方法来获取枚举类型的所有值,并以数组的形式返回。这允许我们遍历枚举类型中的所有值。
public class EnumTest {
public static void main(String[] args) {
for (Weekday day : Weekday.values()) {
System.out.println(day);
}
}
}
六、枚举类型与接口
枚举类型可以实现一个或多个接口。这允许枚举类型具有更多的灵活性,并且能够提供更多的功能。
public interface Greeting {
void greet();
}
public enum Weekday implements Greeting {
MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY;
@Override
public void greet() {
System.out.println("Hello, this is a weekday!");
}
}
public class EnumTest {
public static void main(String[] args) {
Weekday.FRIDAY.greet();
}
}
七、枚举类型的高级用法
枚举类型可以拥有自己的构造器、方法和属性,这允许它们可以非常强劲和灵活。以下是一个更高级的示例,演示了怎样使用枚举类型来即一个操作系统的命令。
public enum OSCommand {
LS {
public void execute() {
System.out.println("Executing 'ls' command");
}
},
pwd {
public void execute() {
System.out.println("Executing 'pwd' command");
}
};
public abstract void execute();
}
public class EnumTest {
public static void main(String[] args) {
OSCommand.LS.execute();
OSCommand.pwd.execute();
}
}
总结:Java枚举类型是一种非常有用的特性,它提供了一种简洁、稳固的方法来定义一组命名的常量集合。通过上述七种用法,我们可以看到枚举类型在Java编程中的广泛应用和强劲功能。