Java中枚举及其构造函数

本文介绍了Java中枚举类型的使用方法,包括最简单的枚举定义、带构造器的枚举及其实例创建方式,并展示了如何利用EnumSet来创建枚举集合。

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

一、最简单的枚举

[java]  view plain  copy
  1. public enum Season{ Spring,Summer,Fall,Winter};  

二、带构造器的枚举

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

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

getOrderType

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

            2、枚举实例必须在前面

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

[java]  view plain  copy
  1. public enum EOrderTyper {  
  2.       /** 
  3.      * 无效的订单类型 
  4.      */  
  5.     Invalid(-1,"无效的订单类型"),  
  6.       
  7.     /** 
  8.      * 一般订单 
  9.      */  
  10.     NormalOrder(0"一般订单"),  
  11.       
  12.     /** 
  13.      * 虚拟礼品卡订单 
  14.      */  
  15.     VDDmoney(50"虚拟订单"),  
  16.       
  17.     /** 
  18.      * 实物礼品卡订单 
  19.      */  
  20.     PDDmoney(51"礼品卡订单");  
  21.     private int orderType;  
  22.     private String description;  
  23.     private EOrderTyper(int type, String desc) {  
  24.         this.orderType = type;  
  25.         this.description = desc;  
  26.     }  
  27.   
  28.   
  29.     public int getOrderType() {  
  30.         return this.orderType;  
  31.     }  
  32.   
  33.   
  34.     public String getDescription() {  
  35.         return this.description;  
  36.     }  
  37.       
  38. }  

三、EnumSET

可以用来创建枚举集合,例如:

[java]  view plain  copy
  1. public static EnumSet<EPriceType> getSetTypes(){  
  2.       EnumSet<EPriceType> set=EnumSet.noneOf(EPriceType.class);    
  3.       set.addAll(EnumSet.complementOf(set));    
  4.       return set;  
  5.     }  
### 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、付费专栏及课程。

余额充值