当前位置:首页 > Java

java枚举如何使用

2026-02-05 12:31:59Java

Java枚举的基本用法

枚举(Enum)是Java 5引入的一种特殊数据类型,用于定义一组固定的常量。枚举类型通过enum关键字声明,每个枚举常量默认是public static final的实例。

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

枚举的属性和方法

枚举可以像普通类一样包含属性和方法,每个枚举常量可以有自己的实现。

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

    private final String symbol;
    Operation(String symbol) { this.symbol = symbol; }
    public abstract double apply(double x, double y);
}

枚举的常用方法

Java为所有枚举类型自动提供了以下常用方法:

  • values(): 返回枚举的所有值数组
  • valueOf(String name): 根据名称返回对应的枚举常量
  • name(): 返回枚举常量的名称
  • ordinal(): 返回枚举常量的序数(位置)
Day[] days = Day.values();
Day monday = Day.valueOf("MONDAY");
String name = monday.name();
int ordinal = monday.ordinal();

枚举实现接口

枚举可以实现接口,为所有枚举常量提供统一的行为。

public interface Command {
    void execute();
}

public enum LogLevel implements Command {
    ERROR {
        public void execute() { System.err.println("Error logging"); }
    },
    WARNING {
        public void execute() { System.out.println("Warning logging"); }
    };
}

枚举集合的使用

Java集合框架提供了专门处理枚举的类,如EnumSetEnumMap

EnumSet<Day> weekend = EnumSet.of(Day.SATURDAY, Day.SUNDAY);
EnumMap<Day, String> activities = new EnumMap<>(Day.class);
activities.put(Day.MONDAY, "Work");

枚举的单例模式

由于枚举实例天生是单例的,因此枚举是实现单例模式的最佳方式。

java枚举如何使用

public enum Singleton {
    INSTANCE;

    public void doSomething() {
        // singleton behavior
    }
}

分享给朋友:

相关文章

java如何创建对象

java如何创建对象

创建对象的基本方法 在Java中,创建对象主要通过new关键字调用构造函数完成。基本语法为: ClassName objectName = new ClassName(); 例如创建String对象…

如何学好java

如何学好java

理解基础概念 掌握Java的核心概念是学习的基础。包括数据类型、变量、运算符、控制流(如循环和条件语句)、数组等。理解面向对象编程(OOP)的四大特性:封装、继承、多态和抽象。 实践编程练习 通过实…

java如何创建数组

java如何创建数组

创建数组的基本方法 在Java中,数组是固定大小的同类型元素集合。创建数组需要声明数组类型并初始化。 声明数组 语法格式为 数据类型[] 数组名 或 数据类型 数组名[]: int[] arr1;…

java版本如何查看

java版本如何查看

查看Java版本的命令行方法 在命令行或终端中运行以下命令可以查看当前安装的Java版本: java -version 输出示例: java version "1.8.0_301" Java(TM…

java中如何获取当前时间

java中如何获取当前时间

获取当前时间的几种方法 使用 java.time 包(Java 8及以上推荐) import java.time.LocalDateTime; LocalDateTime currentTime =…

java如何实现多继承

java如何实现多继承

在Java中,由于语言设计本身不支持多继承(即一个类不能直接继承多个父类),但可以通过以下方式间接实现类似多继承的效果: 使用接口实现多继承 接口允许一个类实现多个接口,从而继承多个抽象行为。接口中…