当前位置:首页 > Java

java枚举如何使用

2026-03-03 23:46:38Java

枚举的基本定义

在Java中,枚举(Enum)是一种特殊的类,用于表示一组固定的常量。通过enum关键字定义,枚举常量默认是public static final的。

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

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

枚举的常用方法

  • values():返回枚举的所有常量数组。
  • valueOf(String name):根据名称返回对应的枚举常量。
  • ordinal():返回枚举常量的序号(从0开始)。
Day[] days = Day.values(); // 获取所有枚举值
Day monday = Day.valueOf("MONDAY"); // 根据名称获取枚举
int ordinal = monday.ordinal(); // 返回0(MONDAY是第一个常量)

枚举实现接口

枚举可以实现接口,每个枚举常量可以重写接口方法。

java枚举如何使用

public interface Greeting {
    void greet();
}

public enum GreetingType implements Greeting {
    HELLO {
        @Override
        public void greet() {
            System.out.println("Hello!");
        }
    },
    GOODBYE {
        @Override
        public void greet() {
            System.out.println("Goodbye!");
        }
    };
}

枚举在switch语句中的使用

枚举常与switch语句结合,实现多分支逻辑。

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

枚举的单例模式

枚举天然支持单例模式,线程安全且防止反射破坏。

public enum Singleton {
    INSTANCE;

    public void doSomething() {
        System.out.println("单例方法");
    }
}

枚举的注意事项

  • 枚举的构造函数默认为private,无法手动调用。
  • 枚举常量必须在第一行声明,且以分号结尾(如果后面有字段或方法)。
  • 枚举可以实现接口,但不能继承类(因为已隐式继承java.lang.Enum)。

分享给朋友:

相关文章

java如何调用方法

java如何调用方法

调用方法的基本语法 在Java中,调用方法需要明确方法所属的对象(实例方法)或类(静态方法),并传递必要的参数。语法格式如下: 实例方法:对象名.方法名(参数列表); 静态方法:类名…

react路由如何使用

react路由如何使用

React 路由的基本使用 React 路由通常通过 react-router-dom 库实现,用于管理单页面应用(SPA)中的页面导航。 安装 react-router-dom: npm ins…

java如何输出数组

java如何输出数组

输出数组的方法 在Java中,输出数组内容有多种方式,具体取决于数组类型和输出格式需求。以下是几种常见的方法: 使用Arrays.toString()方法 适用于一维数组,直接调用Arrays.to…

java如何调用另一个类的方法

java如何调用另一个类的方法

调用另一个类的方法 在Java中调用另一个类的方法,通常需要创建该类的对象或直接通过类名调用(静态方法)。以下是几种常见的方式: 通过对象实例调用实例方法 创建一个目标类的对象,通过对象调用其方法。…

如何学习好java

如何学习好java

掌握Java基础知识 学习Java的第一步是掌握其基础知识,包括数据类型、变量、运算符、控制流语句(如if-else、for循环、while循环)以及数组。这些是构建更复杂程序的基石。可以通过在线教程…

react激光如何使用

react激光如何使用

安装React激光库 在项目中安装React激光库,通常通过npm或yarn完成。确保项目已初始化并具备React环境。 npm install react-laser-beam # 或 yar…