Java中枚举及其构造函数

本文详细介绍了Java中枚举类型的两种使用方式:最简单的枚举和带构造器的枚举。通过具体示例展示了如何定义枚举实例,构造函数及其实现的方法,如获取枚举类型和描述。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、最简单的枚举

public enum Season{ Spring,Summer,Fall,Winter};

二、带构造器的枚举

如下:EOrderType就是枚举的构造函数

例如NormalOrder(0, “一般订单”) 第一个0对于构造函数的type,第二个参数对应构造函数的desc

getOrderType

注意:1、需要在枚举实例后面加上分号,然后再写构造函数等
2、枚举实例必须在前面

3、定义枚举的构造器方法带参,只能为private

public enum EOrderTyper {
	  /**
     * 无效的订单类型
     */
	Invalid(-1,"无效的订单类型"),
	
	/**
	 * 一般订单
	 */
	NormalOrder(0, "一般订单"),
	
	/**
	 * 虚拟礼品卡订单
	 */
	VDDmoney(50, "虚拟订单"),
	
	/**
	 * 实物礼品卡订单
	 */
	PDDmoney(51, "礼品卡订单");
	private int orderType;
	private String description;
	private EOrderTyper(int type, String desc) {
		this.orderType = type;
		this.description = desc;
	}
 
 
	public int getOrderType() {
		return this.orderType;
	}
 
 
	public String getDescription() {
		return this.description;
	}
	
}
### Java 枚举的使用方法 #### 定义枚举类型 在Java中,枚举是一种特殊的类,用于定义一组常量。通过`enum`关键字来声明枚举类型。 ```java public enum Day { SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY } ``` 此代码片段展示了如何创建一个名为 `Day` 的枚举类型,它包含了七天的名字[^1]。 #### 枚举的方法和属性 除了作为简单的常量列表外,枚举还可以拥有字段、方法以及构造函数。这使得枚举可以携带额外的信息并执行特定的操作。 ```java public enum Planet { MERCURY (3.303e+23, 2.4397e6), VENUS (4.869e+24, 6.0518e6), EARTH (5.976e+24, 6.37814e6); private final double mass; private final double radius; Planet(double mass, double radius) { this.mass = mass; this.radius = radius; } public double getMass() { return mass; } public double getRadius() { return radius; } } ``` 这段代码展示了一个更复杂的枚举——行星及其质量半径数据,并提供了获取这些值的方法。 #### 枚举的应用场景 枚举非常适合用来表示固定数量且已知的一组选项,比如一周中的日子、颜色集或者其他任何有限集合的数据项。它们提高了程序的安全性和可读性,因为编译器能够确保只有预定义过的值才能被赋给该类型的变量。 #### EnumSet 和 EnumMap 对于基于枚举类型的集合操作,Java 提供了两个专用容器:`EnumSet` 和 `EnumMap`。前者提供了一种紧凑高效的位向量实现方式;后者则允许将键映射到值上,其中键必须是某种枚举类型实例。 ```java import java.util.EnumSet; // 创建一个包含所有工作日的 EnumSet EnumSet<Day> workDays = EnumSet.range(Day.MONDAY, Day.FRIDAY); ``` 以上代码说明了怎样利用 `EnumSet` 来处理一系列连续的工作日。 #### 实际应用案例 下面的例子演示了如何在一个应用程序里运用枚举来进行逻辑判断: ```java public class Main { enum Color { RED, BLUE, YELLOW, GREEN } public static void main(String[] args) { Color myColor = Color.YELLOW; switch(myColor) { case RED -> System.out.println("The color is red"); case BLUE -> System.out.println("The color is blue"); case YELLOW -> System.out.println("The color is yellow"); case GREEN -> System.out.println("The color is green"); } } } ``` 上述代码段显示了当选择的颜色为黄色时会打印相应消息的过程[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值