<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                ## [枚舉類型](https://lingcoder.gitee.io/onjava8/#/book/06-Housekeeping?id=%e6%9e%9a%e4%b8%be%e7%b1%bb%e5%9e%8b) Java 5 中添加了一個看似很小的特性**enum**關鍵字,它使得我們在需要群組并使用枚舉類型集時,可以很方便地處理。以前,你需要創建一個整數常量集,但是這些值并不會將自身限制在這個常量集的范圍內,因此使用它們更有風險,而且更難使用。枚舉類型屬于非常普遍的需求,C、C++ 和其他許多語言都已經擁有它了。在 Java 5 之前,Java 程序員必須了解許多細節并格外仔細地去達成**enum**的效果。現在 Java 也有了**enum**,并且它的功能比 C/C++ 中的完備得多。下面是個簡單的例子: ~~~ // housekeeping/Spiciness.java public enum Spiciness { NOT, MILD, MEDIUM, HOT, FLAMING } ~~~ 這里創建了一個名為**Spiciness**的枚舉類型,它有5個值。由于枚舉類型的實例是常量,因此按照命名慣例,它們都用大寫字母表示(如果名稱中含有多個單詞,使用下劃線分隔)。 要使用**enum**,需要創建一個該類型的引用,然后將其賦值給某個實例: ~~~ // housekeeping/SimpleEnumUse.java public class SimpleEnumUse { public static void main(String[] args) { Spiciness howHot = Spiciness.MEDIUM; System.out.println(howHot); } } ~~~ 輸出: ~~~ MEDIUM ~~~ 在你創建**enum**時,編譯器會自動添加一些有用的特性。例如,它會創建`toString()`方法,以便你方便地顯示某個**enum**實例的名稱,這從上面例子中的輸出可以看出。編譯器還會創建`ordinal()`方法表示某個特定**enum**常量的聲明順序,`static values()`方法按照 enum 常量的聲明順序,生成這些常量值構成的數組: ~~~ // housekeeping/EnumOrder.java public class EnumOrder { public static void main(String[] args) { for (Spiciness s: Spiciness.values()) { System.out.println(s + ", ordinal " + s.ordinal()); } } } ~~~ 輸出: ~~~ NOT, ordinal 0 MILD, ordinal 1 MEDIUM, ordinal 2 HOT, ordinal 3 FLAMING, ordinal 4 ~~~ 盡管**enum**看起來像是一種新的數據類型,但是這個關鍵字只是在生成**enum**的類時,產生了某些編譯器行為,因此在很大程度上你可以將**enum**當作其他任何類。事實上,**enum**確實是類,并且具有自己的方法。 **enum**有一個很實用的特性,就是在**switch**語句中使用: ~~~ // housekeeping/Burrito.java public class Burrito { Spiciness degree; public Burrito(Spiciness degree) { this.degree = degree; } public void describe() { System.out.print("This burrito is "); switch(degree) { case NOT: System.out.println("not spicy at all."); break; case MILD: case MEDIUM: System.out.println("a little hot."); break; case HOT: case FLAMING: default: System.out.println("maybe too hot"); } } public static void main(String[] args) { Burrito plain = new Burrito(Spiciness.NOT), greenChile = new Burrito(Spiciness.MEDIUM), jalapeno = new Burrito(Spiciness.HOT); plain.describe(); greenChile.describe(); jalapeno.describe(); } } ~~~ 輸出: ~~~ This burrito is not spicy at all. This burrito is a little hot. This burrito is maybe too hot. ~~~ 由于**switch**是在有限的可能值集合中選擇,因此它與**enum**是絕佳的組合。注意,enum 的名稱是如何能夠倍加清楚地表明程序的目的的。 通常,你可以將**enum**用作另一種創建數據類型的方式,然后使用所得到的類型。這正是關鍵所在,所以你不用過多地考慮它們。在**enum**被引入之前,你必須花費大量的精力去創建一個等同的枚舉類型,并是安全可用的。 這些介紹對于你理解和使用基本的**enum**已經足夠了,我們會在"枚舉"一章中進行更深入的探討。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看