java enum使用

1 定义枚举类
public enum NumberEnum {
// 整数常量4
constFour(4),
// 整数常量8
constEight(8),
// 整数常量999999
constNines(999999);

private final int value;

NumberEnum(int value) {
this.value = value;
}

public int getValue() {
return value;
}
}

2 使用
NumberEnum.constFour.getValue()

3 应用
可以在枚举类中存储错误信息,以及提示信息,实现资源文件的功能。
Java 枚举(Enum)是 JDK 1.5 版本引入的一种特殊类,主要用于表示一组固定的常量,使用起来灵活且功能强大,在实际编程中非常有用,以下是 Java 枚举的使用指南: ### 定义枚举类型 使用 `enum` 关键字来声明枚举,声明定义的类都隐含继承了一个父类 `java.lang.Enum<E>`,因此枚举不能再继承,但仍可实现接口。定义在枚举类型里的每一个枚举实例都将映射到 `Enum` 的子类中,其实例的名称和在枚举类型里定义的顺序都会传入到这个构造函数里:`protected Enum(String name, int ordinal)` [^1][^2]。 ```java enum Weekday { MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY } ``` ### 使用枚举常量 一旦定义了枚举类型,便可以在程序中使用它们来表示相关的常量。可以通过枚举名直接访问其常量,也可以使用枚举常量进行条件判断等操作 [^4]。 ```java public class Main { public static void main(String[] args) { Weekday today = Weekday.SUNDAY; if (today == Weekday.SUNDAY) { System.out.println("It's SUNDAY, time to party!"); } else { System.out.println("It's not SUNDAY, just a regular day."); } } } ``` ### 枚举的属性和方法 枚举有一些独特的属性和方法,比如 `values()` 和 `ordinal()`。`values()` 方法可以返回一个包含所有枚举常量的数组,`ordinal()` 方法返回枚举实例被创建的序数,`name()` 方法返回枚举类型的名称 [^1][^2]。 ```java public class EnumMethods { public static void main(String[] args) { Weekday[] allDays = Weekday.values(); for (Weekday day : allDays) { System.out.println(day.name() + " 的序数是: " + day.ordinal()); } } } ``` ### 枚举中定义方法和构造器 枚举类型可以定义常量、方法、构造器和实现接口,这使得枚举类型非常灵活和功能强大。可以为枚举添加构造器和方法,每个枚举常量可以有自己的属性和行为 [^3]。 ```java enum TrafficLight { RED(30), YELLOW(5), GREEN(40); private int duration; TrafficLight(int duration) { this.duration = duration; } public int getDuration() { return duration; } } public class TrafficLightExample { public static void main(String[] args) { for (TrafficLight light : TrafficLight.values()) { System.out.println(light.name() + " 持续时间: " + light.getDuration() + " 秒"); } } } ``` ### 枚举实现接口 枚举可以实现接口,从而为每个枚举常量提供不同的行为实现 [^3]。 ```java interface LightBehavior { void action(); } enum TrafficLight2 implements LightBehavior { RED { @Override public void action() { System.out.println("停止"); } }, YELLOW { @Override public void action() { System.out.println("准备"); } }, GREEN { @Override public void action() { System.out.println("通行"); } } } public class TrafficLightInterfaceExample { public static void main(String[] args) { for (TrafficLight2 light : TrafficLight2.values()) { light.action(); } } } ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值