Java enum

博客介绍了Java中enum类的相关知识,指出enum类继承自java.lang.Enum,并提及后续会介绍其基本用法。

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

enum类其实继承了java.lang.Enum。
以下为基本用法:

package com.example.demo.enums;

import java.util.EnumMap;
import java.util.EnumSet;

/**
 * @author Grace.Pan
 * @date 2019/6/18
 */
public enum Season {
    SPRING("春天", 0), SUMMER("夏天", 1), AUTUMN("球天", 2), WINTER("冬天", 3);

    private String name;
    private int code;

    private Season(String name, int code) {
        this.name = name;
        this.code = code;
    }

    public int getCode() {
        return code;
    }

    public String getName() {
        return name;
    }

    public static void main(String[] args) {
        //以数组形式返回枚举类的所有成员
        Season[] values = Season.values();
        //根据字符串转换成枚举实例
        Season spring = Season.valueOf("SPRING");
        //根据字符串转换成枚举实例
        Season spr = Enum.valueOf(Season.class, "SPRING");
        System.out.println(values.toString() + values[0].name);
        System.out.println(spring.name + spr.toString());
        System.out.println(spr.name + spr.toString());
		//EnumSet
        EnumSet<Season> seasons = EnumSet.allOf(Season.class);
        seasons.forEach(season -> System.out.println(season));
		//EnumMap
        EnumMap<Season, String> stringEnumMap = new EnumMap<Season, String>(Season.class);
        stringEnumMap.put(Season.SPRING, "S");
        stringEnumMap.put(Season.WINTER, "W");
        System.out.println(stringEnumMap.get(Season.SPRING));
    }
}

[Lcom.example.demo.enums.Season;@2f92e0f4春天
春天SPRING
春天SPRING
SPRING
SUMMER
AUTUMN
WINTER
S
### Java 枚举类型的用法与实例 枚举类型(`enum`)是在 Java 5 中引入的一种特殊的数据类型,用于定义一组固定的常量集合。所有的枚举类都隐式继承自 `java.lang.Enum` 类[^1]。 #### 定义简单的枚举 下面是一个基本的枚举定义示例: ```java public enum Day { SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY; } ``` 可以通过以下方式访问这些枚举值: ```java Day day = Day.MONDAY; System.out.println(day); // 输出:MONDAY ``` #### 使用构造函数和方法扩展枚举功能 可以为枚举添加字段、构造器以及方法来增强其功能性。例如: ```java public enum Planet { MERCURY(3.30E23), VENUS(4.87E24); private final double mass; Planet(double mass) { this.mass = mass; } public double getMass() { return mass; } } Planet planet = Planet.MERCURY; System.out.println("Mercury's mass: " + planet.getMass()); // 输出:Mercury's mass: 3.3E23 ``` #### 枚举中的抽象方法实现 还可以让枚举实现接口或者声明抽象方法并由各个枚举项具体化其实现逻辑: ```java public enum Operation { PLUS { @Override public int apply(int x, int y) { return x + y; } }, MINUS { @Override public int apply(int x, int y) { return x - y; } }; abstract public int apply(int x, int y); } Operation op = Operation.PLUS; int result = op.apply(10, 5); // 结果为 15 System.out.println(result); ``` 由于枚举已经继承了 `java.lang.Enum`,因此它不能再显式地去继承其他父类。 #### 注解的应用场景 在某些情况下可能需要标记某个 API 已过时,在此之前版本中我们通常会使用 `@Deprecated` 这样的注解来进行标注[^2]。对于现代开发环境而言,则推荐配合 Javadoc 提供更详细的说明文档以便开发者理解为何该部分被废弃以及替代方案是什么等内容。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值