java中的枚举类

本文介绍了Java枚举的基本用法,包括如何获取枚举值的序号及如何为枚举值添加属性并进行更新。同时展示了如何利用构造函数初始化枚举值,并通过get和set方法操作这些属性。
  1. 枚举类中枚举值序号(类似于数组下标)默认从0开始。要获取它的下标可以调用ordinal()方法实现。
    public enum Days{
        Monday,
        Tuesday,
        Wednesday,
        Thursday,
        Friday,
        Saturday,
        Sunday;
    }
    public static void main(String[] args) {
        System.out.println(Days.Sunday.ordinal());
    }

    2. 可以给枚举值添加各种属性,并且可以通过构造函数给枚举值赋予初始值,通过get,set方法更新枚举值的属性值。

public enum OrderStatusEnum {
        CANCELED(0, "已取消"),
        NO_PAY(10,"未支付"),
        PAID(20,"已付款"),
        SHIPPED(40,"已发货"),
        ORDER_SUCCESS(50,"订单完成"),
        ORDER_CLOSE(60,"订单关闭");

        private int code;
        private String value;

        OrderStatusEnum(int code, String value) {
            this.code = code;
            this.value = value;
        }

        public int getCode() {
            return code;
        }

        public void setCode(int code) {
            this.code = code;
        }

        public String getValue() {
            return value;
        }

        public void setValue(String value) {
            this.value = value;
        }
    }
    public static void main(String[] args) {
        OrderStatusEnum.CANCELED.setCode(1);
        System.out.println(OrderStatusEnum.CANCELED.getCode());
    }
    3. 枚举类一般可以定义在常量类中,如Const类当中。


Java中,使用枚举类进行类型判断通常有以下几种常见方法: ### 使用`switch`语句 `switch`语句非常适合与枚举类一起使用,因为枚举类的实例是固定的,`switch`可以清晰地处理每一个可能的枚举值。示例代码如下: ```java // 定义一个表示季节的枚举类 enum Season { SPRING, SUMMER, FALL, WINTER } public class EnumSwitchExample { public static void printSeasonInfo(Season season) { switch (season) { case SPRING: System.out.println("万物复苏"); break; case SUMMER: System.out.println("枝繁叶茂"); break; case FALL: System.out.println("硕果累累"); break; case WINTER: System.out.println("白雪皑皑"); break; } } public static void main(String[] args) { printSeasonInfo(Season.SPRING); } } ``` 在这个例子中,根据传入的`Season`枚举实例,`switch`语句会执行相应的`case`分支,输出对应的季节信息。这是因为枚举类的判断通常用`switch`,它适合判断固定几个值的情况[^4]。 ### 使用`if-else`语句 虽然`switch`语句更适合枚举类型的判断,但在某些情况下,也可以使用`if-else`语句。示例代码如下: ```java enum Color { RED, GREEN, BLUE } public class EnumIfElseExample { public static void checkColor(Color color) { if (color == Color.RED) { System.out.println("颜色是红色"); } else if (color == Color.GREEN) { System.out.println("颜色是绿色"); } else if (color == Color.BLUE) { System.out.println("颜色是蓝色"); } } public static void main(String[] args) { checkColor(Color.GREEN); } } ``` 这里通过`if-else`语句对`Color`枚举实例进行判断,并输出相应的信息。 ### 在枚举类中定义方法进行判断 可以在枚举类中定义方法,根据不同的枚举实例返回不同的结果。示例代码如下: ```java enum DayOfWeek { MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY; public boolean isWeekend() { return this == SATURDAY || this == SUNDAY; } } public class EnumMethodExample { public static void main(String[] args) { DayOfWeek day = DayOfWeek.SATURDAY; if (day.isWeekend()) { System.out.println(day + " 是周末"); } else { System.out.println(day + " 不是周末"); } } } ``` 在`DayOfWeek`枚举类中定义了`isWeekend`方法,用于判断当前枚举实例是否代表周末。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值