Java枚举(enum)用法与场景详解_实际应用场景解析

2025-04-23 13

Java 枚举(enum)是一种特殊的类,用于定义一组常量。枚举提供了一种将一组相关的常量组织在一起的方式,使得代码更加清晰和易于维护。以下是 Java 枚举的用法和典型应用场景:

用法

  1. 定义枚举

    public enum Day {
        SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY
    }
    

    在这个例子中,Day 是一个枚举类型,它包含一周的七天作为枚举常量。

  2. 使用枚举

    Day today = Day.WEDNESDAY;
    
    if (today == Day.WEDNESDAY) {
        System.out.println("It's Wednesday!");
    }
    
  3. 枚举中的字段和方法
    枚举可以包含字段、构造方法和方法。

    public enum Planet {
        MERCURY(3.303e+23, 2.4397e6),
        VENUS(4.869e+24, 6.0518e6);
    
        private final double mass;   // in kilograms
        private final double radius; // in meters
    
        Planet(double mass, double radius) {
            this.mass = mass;
            this.radius = radius;
        }
    
        private double surfaceGravity() {
            final double G = 6.67300E-11;
            return G * mass / (radius * radius);
        }
    
        public double surfaceWeight(double otherMass) {
            return otherMass * surfaceGravity();
        }
    }
    
    public class Test {
        public static void main(String[] args) {
            double earthWeight = 70.0; // in kg
            double mass = earthWeight / Planet.EARTH.surfaceGravity(); // Assume EARTH is defined with appropriate values
            System.out.println("Your weight on Venus would be " + Planet.VENUS.surfaceWeight(mass));
        }
    }
    

    注意:在这个例子中,我们假设 EARTH 已经被定义,并且需要为 EARTH 提供适当的质量和半径。

  4. 覆盖方法
    枚举可以覆盖 Java 对象的常用方法,比如 toString()

    public enum Operation {
        PLUS {
            public double apply(double x, double y) { return x + y; }
        },
        MINUS {
            public double apply(double x, double y) { return x - y; }
        },
        TIMES {
            public double apply(double x, double y) { return x * y; }
        },
        DIVIDE {
            public double apply(double x, double y) { return x / y; }
        };
    
        public abstract double apply(double x, double y);
    }
    

场景

  1. 定义常量集合
    枚举是定义一组常量的方式,比如星期、月份、状态码等。

  2. Switch 语句
    枚举常与 switch 语句一起使用,使代码更加清晰。

    Day day = Day.MONDAY;
    switch (day) {
        case MONDAY:
            System.out.println("Start of the work week");
            break;
        case FRIDAY:
            System.out.println("Last work day of the week");
            break;
        default:
            System.out.println("Midweek days");
            break;
    }
    
  3. 类型安全
    枚举提供了一定程度的类型安全。与使用 intString 表示一组相关的常量相比,枚举可以防止无效值的出现。

  4. 实现策略模式
    枚举可以用来实现策略模式,每个枚举常量可以代表一个策略,并实现一个抽象方法。

  5. 单例模式的有限集合
    在某些情况下,可以使用枚举来实现一组单例对象。

Java 枚举功能强大且灵活,适合在需要定义一组固定常量的场合使用,并可以通过添加字段和方法来增强其功能。

(本文来源:https://www.nzw6.com)

Image

1. 本站所有资源来源于用户上传和网络,因此不包含技术服务请大家谅解!如有侵权请邮件联系客服!cheeksyu@vip.qq.com
2. 本站不保证所提供下载的资源的准确性、安全性和完整性,资源仅供下载学习之用!如有链接无法下载、失效或广告,请联系客服处理!
3. 您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容资源!如用于商业或者非法用途,与本站无关,一切后果请用户自负!
4. 如果您也有好的资源或教程,您可以投稿发布,成功分享后有积分奖励和额外收入!
5.严禁将资源用于任何违法犯罪行为,不得违反国家法律,否则责任自负,一切法律责任与本站无关

源码下载