亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Industrial programming >> java

Java 枚举

Java 枚举

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

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

enum Size { 
   SMALL, MEDIUM, LARGE, EXTRALARGE 
}

在这里,我们创建了一个名为 Size 的枚举 .它包含固定值 SMALL , 中等 , , 和 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;

在这里,pizzaSizeSize 的变量 类型。只能分配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.

在上面的程序中,我们创建了一个枚举类型 Size .然后我们声明了一个变量 pizzaSize 大小 输入。

这里,变量 pizzaSize 只能分配 4 个值(SMALL , 中等 , , 超大 )。

注意声明,

Test t1 = new Test(Size.MEDIUM);

它将调用 Test() Test 中的构造函数 班级。现在,变量 pizzaSize 分配有 MEDIUM 常数。

根据该值,执行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

在上面的例子中,我们创建了一个枚举类 Size .它有四个常量 SMALL , 中等 , 超大 .

由于 大小 是一个枚举类,编译器会自动为每个枚举常量创建实例。

main() 里面 方法,我们使用了实例 SMALL 调用 getSize() 方法。

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


Java Enum 类的方法

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

1。 Java 枚举序数()

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

ordinal(SMALL) 
// returns 0

2。枚举 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 Enum valueOf()

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

Size.valueOf("SMALL")
// returns constant SMALL.

6。枚举值()

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

Size[] enumArray = Size.value();

为什么是 Java 枚举?

在 Java 中,引入了枚举以替换使用 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
}

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

此外,枚举提供编译时类型安全 .

如果我们声明一个 Size 的变量 类型。例如,

Size size;

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


java

  1. 枚举
  2. Java 运算符
  3. Java 评论
  4. Java for-each 循环
  5. Java 字符串
  6. Java 接口
  7. Java 匿名类
  8. Java 枚举
  9. Java枚举构造函数
  10. Java 枚举字符串
  11. Java try-with-resources
  12. Java 注释