Java 基础教程

Java 面向对象

Java 高级教程

Java 笔记

Java FAQ

original icon
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.knowledgedict.com/tutorial/java-enum.html

Java 枚举类


在 java 中,枚举类型是一种特殊数据类型,能够为一个变量定义一组预定义的常量。变量必须等于为其预定义的值之一。

定义枚举类型

下面是一个典型的例子:

public enum Size {
    SMALL, MEDIUM, LARGE, EXTRA_LARGE
}

实际上,这个声明定义的类型是一个类,它刚好有 4 个实例,在此尽量不要构造新对象。

因此,在比较两个枚举类型的值时,永远不需要调用 equals,而直接使用“==”就可以了。

如果需要的话,可以在枚举类型中添加一些构造器、方法和域。当然,构造器只是在构造枚举常量的时候被调用。下面是一个示例:

public enum Size {

    SMALL("S"), MEDIUM("M"), LARGE("L"), EXTRA_LARGE("XL");

    private String abbreviation;

    Size(String abbreviation) {
        this.abbreviation = abbreviation;
    }

    public String getAbbreviation() {
        return abbreviation;
    }
}

所有的枚举类型都是 Enum 类的子类。它们继承了这个类的许多方法。其中最有用的一个是 toString,这个方法能够返回枚举常量名。例如,Size.SMALL.toString() 将返回字符串“SMALL”。

toString 的逆方法是静态方法 valueOf。例如,语句:

Size s = Enum.valueOf(Size.class, "SMALL");

将 s 设置成 Size.SMALL。

每个枚举类型都有一个静态的 values 方法,它将返回一个包含全部枚举值的数组。例如,如下调用:

Size[] values = Size.values();

返回包含元素 Size.SMALL,Size.MEDIUM,Size.LARGE,Size.EXTRA_LARGE 的数组。

ordinal 方法返冋 enum 声明中枚举常量的位置,位置从 0 开始计数。例如:Size.MEDIUM.ordinal() 返回 1。

java.lang.Enum api

java.lang.Enum api
描述

public final int compareTo(E o)

比较此枚举与指定对象的顺序。

public final String name()

返回此枚举常量的名称,在其枚举声明中对其进行声明。

public final int ordinal()

返回枚举常量的序数(它在枚举声明中的位置,其中初始常量序数为零)。

public String toString()

返回枚举常量的名称,它包含在声明中。

类(class)是构造对象的模板或蓝图。可以将类想象成制作小甜饼的切割机,将对象想象为小甜饼。由类构造(construct)对象的过程称为创 ...
Python 中,除了内置函数也有内置类,它们也存在于 builtins 模块中。 ...
在面向对象的设计中,程序员可以创建任何新的类型,这些类型可以描述每个对象包含的数据和特征,这种类型称为类。类是一些对象的抽象,隐藏了对象内部 ...
type属于内置类,存在于builtins模块中。 ...
函数语法delattr(object,name)参数:object:要删除属性的对象。dict__)运行结果:Before:{'name': ...