Java 枚舉方法

2018-01-19 15:13 更新

Java面向?qū)ο笤O(shè)計(jì) - Java枚舉方法


因?yàn)槊杜e類型實(shí)際上是一個(gè)類類型,所以我們可以在枚舉類型體中聲明一切,我們可以在類體中聲明它。

以下代碼使用字段,構(gòu)造函數(shù)和方法定義了一個(gè)級別枚舉。

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;
  }
}

上面的代碼聲明了一個(gè)實(shí)例變量 levelValue ,它將為每個(gè)枚舉常量存儲一個(gè)值。

它還定義了一個(gè)私有構(gòu)造函數(shù),它接受一個(gè)int參數(shù)。它將其參數(shù)的值存儲在實(shí)例變量中。

我們可以向枚舉類型添加多個(gè)構(gòu)造函數(shù)。

我們不能向枚舉類型添加公共或受保護(hù)的構(gòu)造函數(shù)。

級別枚舉聲明一個(gè)公共方法getLevelValue()。

枚舉常量聲明已更改為

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

現(xiàn)在每個(gè)枚舉常量名稱后面都跟著括號中的整數(shù)值。 LOW(30)是調(diào)用int參數(shù)類型的構(gòu)造函數(shù)的縮寫。

當(dāng)創(chuàng)建枚舉常量時(shí),括號中的值將被傳遞給我們添加的構(gòu)造函數(shù)。

LOW調(diào)用默認(rèn)的無參數(shù)構(gòu)造函數(shù),而LOW(30)使用參數(shù)調(diào)用構(gòu)造函數(shù)。


例子

以下代碼測試Level枚舉類型。它打印常量的名稱,它們的序數(shù)和它們的下劃線值。

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);
    }
  }
}

上面的代碼生成以下結(jié)果。



以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號