当前位置:首页 > 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
}

枚举与属性和方法

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

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

枚举实现接口

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

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枚举自动提供了一些有用的方法:

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

枚举的单例模式实现

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

public enum Singleton {
    INSTANCE;

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

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

相关文章

java如何创建文件

java如何创建文件

使用 File 类创建文件 通过 File 类的 createNewFile() 方法创建文件。此方法返回布尔值,表示文件是否成功创建。 import java.io.File; import ja…

如何安装java

如何安装java

下载Java开发工具包(JDK) 访问Oracle官方网站或OpenJDK下载页面,选择适合操作系统的版本(Windows、macOS或Linux)。推荐下载最新的长期支持(LTS)版本,如Java…

react如何定义整形变量

react如何定义整形变量

在React中定义整型变量 在React中,变量定义遵循JavaScript语法,JavaScript中没有严格的整型(integer)类型,所有数字都以浮点数(number)类型存储。可以通过以下方…

react如何定义404页面

react如何定义404页面

定义404页面的方法 在React中定义404页面通常涉及路由配置,以下是几种常见的方法: 使用React Router v6 在React Router v6中,可以通过<Route>…

php 实现 java md5

php 实现 java md5

在 PHP 中实现与 Java 相同的 MD5 哈希算法,关键在于确保编码和输出格式的一致性。以下是具体实现方法和注意事项: 确保字符串编码一致 Java 的 String.getBytes() 默…

java实现js

java实现js

Java 实现 JavaScript 功能 在 Java 中实现 JavaScript 功能通常涉及以下几种方法: 使用 ScriptEngine Java 提供了 javax.script 包,可…