当前位置:首页 > Java

java 枚举如何定义

2026-03-23 09:35:21Java

枚举定义基础语法

在Java中,枚举(enum)是一种特殊的类,用于表示一组固定的常量。基本定义语法如下:

public enum EnumName {
    CONSTANT1,
    CONSTANT2,
    CONSTANT3
}

枚举常量通常使用大写字母命名,多个常量之间用逗号分隔,最后以分号结束。例如定义一个表示星期几的枚举:

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

枚举与属性和方法

枚举可以包含属性和方法,使其更具表现力。以下是一个带有属性和构造方法的枚举示例:

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; }
}

枚举实现接口

枚举可以实现接口,允许定义抽象方法并在每个枚举常量中提供具体实现:

public interface Operation {
    double apply(double x, double y);
}

public enum BasicOperation implements Operation {
    PLUS {
        public double apply(double x, double y) { return x + y; }
    },
    MINUS {
        public double apply(double x, double y) { return x - y; }
    };
}

枚举常用方法

Java枚举自动提供了一些有用的方法:

  • values():返回包含所有枚举常量的数组
  • valueOf(String name):根据名称返回对应的枚举常量
  • name():返回枚举常量的名称
  • ordinal():返回枚举常量的序数(声明时的位置,从0开始)

使用示例:

Day[] days = Day.values();
Day monday = Day.valueOf("MONDAY");
String name = monday.name();
int position = monday.ordinal();

枚举与switch语句

枚举常与switch语句配合使用,提供清晰的控制流:

Day day = Day.MONDAY;

switch(day) {
    case MONDAY:
        System.out.println("星期一");
        break;
    case TUESDAY:
        System.out.println("星期二");
        break;
    // 其他case...
}

枚举的单例模式实现

枚举是实现单例模式的最佳方式之一,既能防止反射攻击,又能保证线程安全:

java 枚举如何定义

public enum Singleton {
    INSTANCE;

    public void doSomething() {
        // 单例方法实现
    }
}

标签: 定义java
分享给朋友:

相关文章

java如何创建类

java如何创建类

创建类的基本语法 在Java中,类通过class关键字定义,语法如下: [访问修饰符] class 类名 { // 成员变量(属性) // 构造方法 // 成员方法 }…

如何配置java环境变量

如何配置java环境变量

下载并安装JDK 从Oracle官网或OpenJDK项目下载适合操作系统的JDK安装包。运行安装程序,按照提示完成安装,默认路径通常为C:\Program Files\Java\jdk-版本号。 配…

java如何连接mysql

java如何连接mysql

连接 MySQL 数据库的基本步骤 添加 MySQL 驱动依赖 在项目中引入 MySQL 的 JDBC 驱动。如果使用 Maven,在 pom.xml 中添加以下依赖: <dependency…

java如何编写接口

java如何编写接口

编写Java接口的基本语法 在Java中,接口通过interface关键字定义,可以包含抽象方法、默认方法、静态方法和常量。 public interface MyInterface {…

java如何遍历map

java如何遍历map

遍历Map的几种方法 在Java中,遍历Map有多种方式,可以根据需求选择合适的方法。以下是常见的几种遍历方式: 使用entrySet遍历 通过entrySet()方法获取键值对的集合,可以同时访问…

java如何避免死锁

java如何避免死锁

避免死锁的方法 固定顺序获取锁 确保所有线程按照相同的顺序获取多个锁。例如,若需要获取锁A和锁B,所有线程必须先获取A再获取B,避免交叉依赖导致的死锁。这种方式破坏了“循环等待”条件。 使用锁超时机…