Java中枚举类的用法示例详解

枚举类型可以取代以往常量的定义方式,即将常量封装在类或接口中。此外,枚举类型还提供了安全检查功能。本文就来和大家讲讲Java中枚举类的用法,需要的可以参考一下

1.引入枚举类

Java 枚举是一个特殊的类,一般表示一组常量,比如一年的 4 个季节,一个年的 12 个月份,一个星期的 7 天,方向有东南西北等。

Java 枚举类使用 enum 关键字来定义,各个常量使用逗号 , 来分割。

示例:

enum Color 
{ 
    RED, GREEN, BLUE; 
} 

2.实现枚举类

接下来我们来看一个一个简单的DEMO示例:

/**
 * java枚举
 */
public class Enum {
    public static void main(String[] args) {
        System.out.println(Season.SPRING);
        System.out.println(Season.SUMMER);
        System.out.println(Season.AUTUMN);
        System.out.println(Season.WINTER);
    }
}

// 定义的枚举类
enum Season {
    // 枚举定义的常量对象必须在最前面
    SPRING("春天","万物复苏"),
    SUMMER("夏天","烈日炎炎"),
    AUTUMN("秋天","硕果累累"),
    WINTER("冬天","寒冷刺骨");

    private String name;
    private String desc;

    private Season(String name, String desc) {
        this.name = name;
        this.desc = desc;
    }

    public String getName() {
        return name;
    }

    public String getDesc() {
        return desc;
    }

    @Override
    public String toString() {
        return "Season{" +
                "name='" + name + '\'' +
                ", desc='" + desc + '\'' +
                '}';
    }
}

输出:

Season{name='春天', desc='万物复苏'}
Season{name='夏天', desc='烈日炎炎'}
Season{name='秋天', desc='硕果累累'}
Season{name='冬天', desc='寒冷刺骨'}

3.枚举类的使用注意事项

当我们使用enum关键字来开发一个枚举类的时候,默认会继承Eunm类,而且是一个final修饰的类

如果我们使用的是无参构造器,则枚举中可以直接省略小括号

// 枚举定义的常量对象必须在最前面
SPRING("春天", "万物复苏"),
SUMMER("夏天", "烈日炎炎"),
AUTUMN("秋天", "硕果累累"),
WINTER("冬天", "寒冷刺骨"),
Other, Shit;

Season() {
}

private Season(String name, String desc) {
    this.name = name;
    this.desc = desc;
}

4.枚举的常用方法

我们用具体的程序示例来进行枚举常用方法的演示:

/**
 * 枚举类方法
 */
public class EnumMethod {
    public static void main(String[] args) {
        Season autumn = Season.AUTUMN;
        // 获取当前枚举对象的名称
        System.out.println(autumn.name());

        // 输出该枚举对象的次序,从0开始
        System.out.println(autumn.ordinal());

        // 返回所有的枚举对象
        Season[] values = Season.values();
        for (Season value : values) {
            System.out.println(value);
        }

        // 将字符串转化为枚举对象,要求字符串必须为已有的常量名,否则会爆出一个异常
        Season autumn1 = Season.valueOf("AUTUMN");
        System.out.println(autumn1);

        // 比较两个枚举常量,比较的就是编号
        // AUTUMN的编号减去SUMMER的编号
        System.out.println(Season.AUTUMN.compareTo(Season.SUMMER));
    }
}

输出:

AUTUMN
2
Season{name='春天', desc='万物复苏'}
Season{name='夏天', desc='烈日炎炎'}
Season{name='秋天', desc='硕果累累'}
Season{name='冬天', desc='寒冷刺骨'}
Season{name='null', desc='null'}
Season{name='null', desc='null'}
Season{name='秋天', desc='硕果累累'}
1

5.enum细节

如果使用了enum,则该类不能再继承其他的类,因为它默认继承Enum父类,但是可以进行接口实现

到此这篇关于Java中枚举类的用法示例详解的文章就介绍到这了,更多相关Java枚举类内容请搜索编程学习网以前的文章希望大家以后多多支持编程学习网!

本文标题为:Java中枚举类的用法示例详解

基础教程推荐