当前位置:首页 > Java

java枚举如何引用

2026-03-21 14:14:21Java

Java枚举的引用方法

在Java中,枚举(Enum)是一种特殊的类,用于表示一组固定的常量。引用枚举值的方式与引用类的静态成员类似。

直接引用枚举值

枚举值可以直接通过枚举类型名和枚举值名引用:

enum Color {
    RED, GREEN, BLUE
}

public class Main {
    public static void main(String[] args) {
        Color myColor = Color.RED;
        System.out.println(myColor); // 输出: RED
    }
}

在switch语句中使用枚举

枚举常与switch语句结合使用:

java枚举如何引用

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

public class Main {
    public static void main(String[] args) {
        Day today = Day.WEDNESDAY;

        switch(today) {
            case MONDAY:
                System.out.println("星期一");
                break;
            case WEDNESDAY:
                System.out.println("星期三");
                break;
            default:
                System.out.println("其他日子");
        }
    }
}

枚举作为方法参数

枚举可以作为方法的参数类型:

enum Status {
    ON, OFF
}

public class Device {
    public void setStatus(Status status) {
        System.out.println("设备状态设置为: " + status);
    }
}

public class Main {
    public static void main(String[] args) {
        Device device = new Device();
        device.setStatus(Status.ON);
    }
}

枚举的values()和valueOf()方法

每个枚举类型自动包含两个静态方法:

java枚举如何引用

enum Season {
    SPRING, SUMMER, AUTUMN, WINTER
}

public class Main {
    public static void main(String[] args) {
        // 获取所有枚举值
        Season[] seasons = Season.values();
        for (Season s : seasons) {
            System.out.println(s);
        }

        // 通过字符串获取枚举值
        Season winter = Season.valueOf("WINTER");
        System.out.println(winter);
    }
}

带有属性和方法的枚举

枚举可以包含字段、方法和构造函数:

enum Planet {
    MERCURY(3.303e+23, 2.4397e6),
    VENUS(4.869e+24, 6.0518e6),
    EARTH(5.976e+24, 6.37814e6);

    private final double mass;   // 质量(kg)
    private final double radius; // 半径(m)

    Planet(double mass, double radius) {
        this.mass = mass;
        this.radius = radius;
    }

    public double getMass() { return mass; }
    public double getRadius() { return radius; }
}

public class Main {
    public static void main(String[] args) {
        Planet earth = Planet.EARTH;
        System.out.println("地球质量: " + earth.getMass() + " kg");
    }
}

枚举实现接口

枚举可以实现接口,为每个枚举值提供不同的行为:

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

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

public class Main {
    public static void main(String[] args) {
        System.out.println(BasicOperation.PLUS.apply(3, 4)); // 输出: 7.0
    }
}

枚举集合的使用

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

enum Priority {
    LOW, MEDIUM, HIGH
}

public class Main {
    public static void main(String[] args) {
        EnumSet<Priority> priorities = EnumSet.of(Priority.MEDIUM, Priority.HIGH);
        System.out.println(priorities.contains(Priority.HIGH)); // 输出: true

        EnumMap<Priority, String> messages = new EnumMap<>(Priority.class);
        messages.put(Priority.HIGH, "紧急任务");
        System.out.println(messages.get(Priority.HIGH)); // 输出: 紧急任务
    }
}

标签: java
分享给朋友:

相关文章

如何学习java

如何学习java

学习Java的步骤 理解基础知识 从Java的基本语法开始,包括变量、数据类型、运算符、控制流(if-else、循环)等。掌握这些基础概念是后续学习的基石。 学习面向对象编程(OOP) Java是一…

java如何调用接口

java如何调用接口

调用接口的基本方法 在Java中调用接口通常涉及实现接口或使用接口引用对象。以下是几种常见场景的示例: 定义接口 public interface MyInterface { void d…

如何运行java文件

如何运行java文件

运行Java文件的方法 确保已安装Java Development Kit (JDK),可通过命令行输入java -version和javac -version验证安装。 编写Java代码并保存为.…

java前景如何

java前景如何

Java 当前的市场需求 Java 在企业级开发、大数据、云计算等领域仍占据重要地位。许多大型企业(如银行、电商平台)依赖 Java 构建后端系统。招聘平台数据显示,Java 开发岗位数量稳定,尤其在…

如何编译java

如何编译java

安装JDK 确保系统已安装Java Development Kit(JDK)。可通过命令行输入 javac -version 和 java -version 验证是否安装成功。若未安装,需从Oracl…

java如何遍历map

java如何遍历map

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