2021-04-18 11:01  阅读(50)
文章分类:Java 基础教程 文章标签:JavaJava 教程
©  原文作者:w3cschool 原文地址:https://www.w3cschool.cn/java/java-class-instance.html

Java面向对象设计 - Java枚举方法

因为枚举类型实际上是一个类类型,所以我们可以在枚举类型体中声明一切,我们可以在类体中声明它。

以下代码使用字段,构造函数和方法定义了一个级别枚举。

    public enum Level {
      LOW(30), MEDIUM(15), HIGH(7), URGENT(1);
    
      // Declare an instance variable
      private int levelValue;
    
      // Declare a private constructor
      private Level(int levelValue) {
        this.levelValue = levelValue;
      }
    
      public int getLevelValue() {
        return levelValue;
      }
    }
    

上面的代码声明了一个实例变量levelValue,它将为每个枚举常量存储一个值。

它还定义了一个私有构造函数,它接受一个int参数。它将其参数的值存储在实例变量中。

我们可以向枚举类型添加多个构造函数。

我们不能向枚举类型添加公共或受保护的构造函数。

级别枚举声明一个公共方法getLevelValue()。

枚举常量声明已更改为

    LOW(30), MEDIUM(15),  HIGH(7),  URGENT(1);
    

现在每个枚举常量名称后面都跟着括号中的整数值。 LOW(30)是调用int参数类型的构造函数的缩写。

当创建枚举常量时,括号中的值将被传递给我们添加的构造函数。

LOW调用默认的无参数构造函数,而LOW(30)使用参数调用构造函数。

例子

以下代码测试Level枚举类型。它打印常量的名称,它们的序数和它们的下划线值。

    enum Level {
      LOW(30), MEDIUM(15), HIGH(7), URGENT(1);
    
      // Declare an instance variable
      private int levelValue;
    
      // Declare a private constructor
      private Level(int levelValue) {
        this.levelValue = levelValue;
      }
    
      public int getLevelValue() {
        return levelValue;
      }
    }
    
    public class Main {
      public static void main(String[] args) {
        for (Level s : Level.values()) {
          String name = s.name();
          int ordinal = s.ordinal();
          int underLine = s.getLevelValue();
          System.out.println("name=" + name + ",  ordinal=" + ordinal + ", underLine="
              + underLine);
        }
      }
    }
    

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

202104181104_1.png

点赞(0)
版权归原创作者所有,任何形式转载请联系作者; Java 技术驿站 >> Java 枚举方法
上一篇
Java 枚举类
下一篇
Java 枚举主体