java name 枚举类型 java中的枚举类怎么写

您所在的位置:网站首页 java中的枚举类怎么写 java name 枚举类型 java中的枚举类怎么写

java name 枚举类型 java中的枚举类怎么写

2024-07-17 04:12| 来源: 网络整理| 查看: 265

Java 枚举

在本教程中,我们将学习 Java 中的枚举。我们将在示例的帮助下学习创建和使用枚举和枚举类。

在 Java 中,枚举(enumeration 的缩写)是一种具有一组固定常量值的类型。我们使用enum关键字来声明枚举。例如,

enum Size { SMALL, MEDIUM, LARGE, EXTRALARGE }

在这里,我们创建了一个名为的枚举 尺寸. 它包含固定值小的, 中等的, 大, 和 超大.

大括号内的这些值称为枚举常量(值)。

注意:枚举常量通常以大写形式表示。

示例 1:Java 枚举enum Size { SMALL, MEDIUM, LARGE, EXTRALARGE } class Main { public static void main(String[] args) { System.out.println(Size.SMALL); System.out.println(Size.MEDIUM); } }

输出

SMALL MEDIUM

正如我们从上面的例子中看到的,我们使用枚举名称来访问常量值。

此外,我们可以创建枚举类型的变量。例如,

Size pizzaSize;

这里, 比萨大小 是一个变量 尺寸类型。它只能分配 4 个值。

pizzaSize = Size.SMALL; pizzaSize = Size.MEDIUM; pizzaSize = Size.LARGE; pizzaSize = Size.EXTRALARGE;示例 2:带有 switch 语句的 Java 枚举enum Size { SMALL, MEDIUM, LARGE, EXTRALARGE } class Test { Size pizzaSize; public Test(Size pizzaSize) { this.pizzaSize = pizzaSize; } public void orderPizza() { switch(pizzaSize) { case SMALL: System.out.println("I ordered a small size pizza."); break; case MEDIUM: System.out.println("I ordered a medium size pizza."); break; default: System.out.println("I don't know which one to order."); break; } } } class Main { public static void main(String[] args) { Test t1 = new Test(Size.MEDIUM); t1.orderPizza(); } }

输出

I ordered a medium size pizza.

在上面的程序中,我们创建了一个枚举类型 尺寸. 然后我们声明了一个变量比萨大小 的 尺寸 类型。

这里,变量 比萨大小 只能分配 4 个值 (小的, 中等的, 大, 超大)。

注意声明,

Test t1 = new Test(Size.MEDIUM);

它将调用Test()内部的构造函数测试班级。现在,变量比萨大小 被分配了 中等的 不变。

根据该值,执行switch case 语句的其中一种情况。

Java 中的枚举类

在 Java 中,枚举类型被认为是一种特殊类型的类。它是随着 Java 5 的发布而引入的。

枚举类可以像常规类一样包含方法和字段。

enum Size { constant1, constant2, …, constantN; // methods and fields }

当我们创建一个枚举类时,编译器会创建每个枚举常量的实例(对象)。此外,public static final默认情况下所有枚举常量始终是。

示例 3:Java 枚举类enum Size{ SMALL, MEDIUM, LARGE, EXTRALARGE; public String getSize() { // this will refer to the object SMALL switch(this) { case SMALL: return "small"; case MEDIUM: return "medium"; case LARGE: return "large"; case EXTRALARGE: return "extra large"; default: return null; } } public static void main(String[] args) { // call getSize() // using the object SMALL System.out.println("The size of the pizza is " + Size.SMALL.getSize()); } }

输出

The size of the pizza is small

在上面的例子中,我们创建了一个枚举类 尺寸. 它有四个常数小的, 中等的, 大 和 超大.

自从 尺寸 是一个枚举类,编译器会自动为每个枚举常量创建实例。

在main()方法内部,我们使用了实例小的调用该getSize()方法。

注意:与常规类一样,枚举类也可能包含构造函数。要了解更多信息,请访问Java 枚举构造函数。

Java 枚举类的方法

枚举类中有一些预定义的方法可供使用。

1. Java Enum ordinal()

该ordinal()方法返回枚举常量的位置。例如,

ordinal(SMALL) // returns 02. 枚举 compareTo()

该compareTo()方法根据序数值比较枚举常量。例如,

Size.SMALL.compareTo(Size.MEDIUM) // returns ordinal(SMALL) - ordinal(MEDIUM)3.枚举toString()

该toString()方法返回枚举常量的字符串表示形式。例如,

SMALL.toString() // returns "SMALL"4.枚举名称()

该name()方法以字符串形式返回枚举常量的定义名称。该name()方法的返回值为final。例如,

name(SMALL) // returns "SMALL"5. Java 枚举 valueOf()

该valueOf()方法接受一个字符串并返回一个具有相同字符串名称的枚举常量。例如,

Size.valueOf("SMALL") // returns constant SMALL.6.枚举值()

该values()方法返回一个包含所有枚举常量的枚举类型数组。例如,

Size[] enumArray = Size.value();为什么是 Java 枚举?

在 Java 中,引入了 enum 来代替 int 常量的使用。

假设我们使用了一组int常量。

class Size { public final static int SMALL = 1; public final static int MEDIUM = 2; public final static int LARGE = 3; public final static int EXTRALARGE = 4; }

在这里,如果我们打印常量就会出现问题。这是因为只打印了可能没有帮助的数字。

因此,我们可以简单地使用枚举,而不是使用 int 常量。例如,

enum Size { SMALL, MEDIUM, LARGE, EXTRALARGE }

这使我们的代码更加直观。

此外, enum 提供编译时类型安全。

如果我们声明一个变量 尺寸类型。例如,

Size size;

在这里,保证变量将保存四个值之一。现在,如果我们尝试传递这四个值以外的值,编译器将产生错误。

在 Java 中,枚举类可能像常规类一样包含构造函数。这些枚举构造函数是

私人- 在班级内访问 或package-private - 在包内访问示例:枚举构造函数enum Size { // enum constants calling the enum constructors SMALL("The size is small."), MEDIUM("The size is medium."), LARGE("The size is large."), EXTRALARGE("The size is extra large."); private final String pizzaSize; // private enum constructor private Size(String pizzaSize) { this.pizzaSize = pizzaSize; } public String getSize() { return pizzaSize; } } class Main { public static void main(String[] args) { Size size = Size.SMALL; System.out.println(size.getSize()); } }

输出

The size is small.

在上面的例子中,我们创建了一个枚举 尺寸. 它包括一个private枚举构造函数。构造函数接受一个字符串值作为参数,并为变量赋值比萨大小.

由于构造函数是private,我们无法从类外部访问它。但是,我们可以使用枚举常量来调用构造函数。

在里面 主要的 类,我们将 SMALL 分配给枚举变量 尺寸. 常数小的 然后调用构造函数 尺寸 以字符串为参数。

最后,我们调用getSize()using尺寸.

Java 枚举字符串

在Java中,我们可以使用toString()方法或name()方法来获取枚举常量的字符串表示。例如,

enum Size { SMALL, MEDIUM, LARGE, EXTRALARGE } class Main { public static void main(String[] args) { System.out.println("string value of SMALL is " + Size.SMALL.toString()); System.out.println("string value of MEDIUM is " + Size.MEDIUM.name()); } }

输出

string value of SMALL is SMALL string value of MEDIUM is MEDIUM

在上面的例子中,我们已经看到枚举常量的默认字符串表示是同一个常量的名称。

更改枚举的默认字符串值

我们可以通过覆盖该toString()方法来更改枚举常量的默认字符串表示形式。例如,

enum Size { SMALL { // overriding toString() for SMALL public String toString() { return "The size is small."; } }, MEDIUM { // overriding toString() for MEDIUM public String toString() { return "The size is medium."; } }; } class Main { public static void main(String[] args) { System.out.println(Size.MEDIUM.toString()); } }

输出

The size is medium.

在上面的程序中,我们创建了一个枚举 尺寸. 我们已经覆盖了toString()枚举常量SMALL和的方法MEDIUM。

注意:我们不能覆盖该name()方法。这是因为name()方法是final.



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3