Java基础之枚举

tech2025-12-02  12

在工作中,慢慢发现用到枚举的地方很多,之前也没太注意这块,现在好好整理一下枚举的知识。

什么是枚举类?

定义:类的对象只有有限个,确定的。比如:

星期:Monday(星期一)、......、Sunday(星期天)性别:Man(男)、Woman(女)季节:Spring(春节)......Winter(冬天)

如何使用枚举?

enum Season implements Info{ //1.提供当前枚举类的对象,多个对象之间用","隔开,末尾对象";"结束 SPRING("spring","春天"), SUMMER, AUTUMN, WINTER; private String season; private String desc; //无参构造 Season() { } //有参构造 Season(String season, String desc) { this.season = season; this.desc = desc; } //实现接口的方法 @Override public void show() { System.out.println(SPRING); } }

在这份代码中,其中的

SPRING("spring","春天"), SUMMER, AUTUMN, WINTER

都是enum的对象。这是非常重要的一点。其中枚举类型还可以有自己的属性,还可以实现接口。如下

接口类

interface Info{ void show(); }

测试类:

/** * 使用enum关键字定义枚举类 * 说明:定义的枚举类默认继承于java.lang.Enum类 * * @author ssl * @create 2020 */ public class enumTest { public static void main(String[] args) { Season spring = Season.SPRING; //toString():返回枚举类对象的名称 System.out.println(spring.toString()); System.out.println("****************"); //values():返回所有的枚举类对象构成的数组 Season[] values = Season.values(); for(int i = 0;i < values.length;i++){ System.out.println(values[i]); values[i].show(); } System.out.println("****************"); Thread.State[] values1 = Thread.State.values(); for (int i = 0; i < values1.length; i++) { System.out.println(values1[i]); } //valueOf(String objName):返回枚举类中对象名是objName的对象。 Season winter = Season.valueOf("WINTER"); //如果没有objName的枚举类对象,则抛异常:IllegalArgumentException // Season1 winter = Season1.valueOf("WINTER1"); System.out.println(winter); winter.show(); } }

 

最新回复(0)