举报投诉联系我们 手机版 热门标签 VUE中文网
您的位置:VUE中文网 > java枚举类型enum用法 Java 枚举类型

java枚举类型enum用法 Java 枚举类型

2023-03-12 00:17 Java教程

java枚举类型enum用法 Java 枚举类型

java枚举类型enum用法

Java枚举类型enum是一种特殊的类,它可以用来定义一组常量。它可以被用来表示一些有限的、固定的值,例如性别、星期几、月份等。使用枚举可以避免使用整数常量,这样可以提高代码的可读性和可维护性。

Java中的enum是一个关键字,它用于声明一个新的枚举类型。在声明enum时,必须提供一个名字,并在大括号中列出所有要包含的常量。例如:

public enum Day { 
    SUNDAY, MONDAY, TUESDAY, WEDNESDAY, 
    THURSDAY, FRIDAY, SATURDAY 
}

上面代码声明了一个名为Day的enum,它包含7个常量SUNDAY、MONDAY、TUESDAY、WEDNESDAY、THURSDAY、FRIDAY和SATURDAY。

在使用enum时,我们可以通过访问其中的常量来获得相应的值。例如:

Day day = Day.MONDAY;  // 赋值MONDAY常量 
System.out.println(day); // 输出MONDAY

此外,我们还可以使用switch语句来根据不同情况执行不同功能。例如:

switch (day) { 
    case SUNDAY:  // 如果day是SUNDAY 
        System.out.println("Sunday");  // 打印Sunday 
        break;   // 结束switch语句  

    case MONDAY:   // 如果day是MONDAY  
        System.out.println("Monday");   // 打印Monday  
        break;   // 结束switch语句  

    default:   // 如果day不是SUNDAY也不是MONDAY  
        System.out.println("Other day");   // 打印Other day  

 } 

此外,我们还可以使用for-each循环遍历所有的enum常量。例如:

for (Day d : Day.values()) {  // 遍历Day中所有的常量 												     System.out.println(d); } 

Java 枚举类型

Java面向对象设计 - Java枚举类型

什么是枚举类型?

枚举类型创建常量的有序列表作为类型。它以特定顺序指定常量。

在枚举类型中定义的常量是该枚举类型的实例。

语法

使用关键字enum使用以下语法定义枚举类型:

<access-modifier> enum <enum-type-name>  {
    // List of  comma  separated names of  enum constants
}

<access-modifiers>与类的访问修饰符相同:public,private,protected或package-level。

<enum-type-name>是有效的Java标识符。

枚举类型的主体放在大括号中,名称后面。主体可以有逗号分隔的常量和其他元素的列表,例如实例变量,方法等。

大多数时候,枚举体只包括常量。

例子

下面的代码声明了一个名为Gender的枚举类型,它声明了两个常量:MALE和FEMALE:

public enum Gender  {
    MALE,  FEMALE;  // The semi-colon is optional
}

将枚举常量命名为大写是一种惯例。

以下代码声明了一个名为Level的公共枚举类型,它具有四个枚举常量:LOW,MEDIUM,HIGH和URGENT。

public enum Level {
    LOW,  MEDIUM,  HIGH, URGENT;
}

可以从应用程序中的任何位置访问公共枚举类型。

公共枚举类型保留在具有枚举类型名称的文件中。级别枚举将保存在名为Level.java的文件中。

我们需要在包中放置枚举类型,我们可以使用 import 语句导入枚举类型。

枚举变量

我们可以声明枚举类型的变量,就像声明类类型的变量一样。

以下代码声明Level枚举类型的errorLevel变量。

Level errorLevel;

您可以为枚举类型变量分配null,如下所示:

Level defectLevel = null;

在switch语句中使用枚举类型

您可以在switch语句中使用枚举类型。

当switch表达式是枚举类型时,所有case标签必须是同一枚举类型的不合格枚举常量。

enum Direction {
  East, South, West, North
}

public class Main {
  public static void main(String args[]) {
    Direction dir = Direction.South;
    switch (dir) {
    case South:
      System.out.println("south");
      break;
    case East:
      System.out.println("East");
      break;
    case West:
      System.out.println("West");
      break;
    case North:
      System.out.println("North.");
      break;
    }
  }
}

上面的代码生成以下结果。

嵌套枚举类型

我们可以在类,接口或另一个枚举类型中有一个嵌套的枚举类型声明。

嵌套枚举类型是隐式静态的。因为枚举类型总是静态的,所以我们不能在方法体内声明一个局部枚举类型。

对于嵌套枚举类型,我们可以使用任何访问修饰符(public,private,protected或package)级别。

以下代码显示了如何在Person类中声明名为Gender的嵌套公共枚举类型。

class Person {
  public enum Gender {
    MALE, FEMALE
  }
}

public class Main {
  public static void main(String[] args) {
    Person.Gender m = Person.Gender.MALE;
    Person.Gender f = Person.Gender.FEMALE;
    System.out.println(m);
    System.out.println(f);
  }
}

Person.Gender枚举类型可以从应用程序中的任何位置访问,因为它已被声明为public。

我们也可以通过使用静态导入导入枚举常量来使用枚举常量的简单名称。

import static  com..enums.Person.Gender.*;

实现枚举类型的接口

枚举类型可以实现接口。实现接口的枚举类型的规则与实现接口的类的规则相同。

下面的代码演示了如何让enum类型实现一个接口。
interface Command {
  void execute();
}

enum Level implements Command {
  LOW {
    public void execute() {
      System.out.println("Low...");
    }
  },
  HIGH {
    public void execute() {
      System.out.println("HIGH...");
    }
  };
  public abstract void execute();
}

public class Main {
  public static void main(String... args) {
    for (Command cmd : Level.values()) {
      cmd.execute();
    }
  }
}

上面的代码生成以下结果。

阅读全文
以上是VUE中文网为你收集整理的java枚举类型enum用法 Java 枚举类型全部内容。
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。
相关文章
© 2024 VUE中文网 vue88.com 版权所有 联系我们