首頁  >  文章  >  Java  >  Java中的枚舉怎麼使用

Java中的枚舉怎麼使用

WBOY
WBOY轉載
2023-04-20 11:49:061178瀏覽

    枚舉(enum)

    枚舉是一個被命名的整數常數的集合,用來宣告一組帶有標識符的常數。枚舉在曰常生活中很常見,例如一個人的性別只能是“男”或“女”,一周的星期只能是 7 天中的一個等。類似這種當一個變數有幾種固定可能的取值時,就可以將它定義為枚舉型別。

    Java 枚舉類別使用enum 關鍵字來定義,各個常數使用逗號, 來分割,結尾使用分號;結束

    Java中的枚舉怎麼使用

    #定義一個季節的枚舉類別

    enum Season{
        spring,summer,autumn,winter;
    //   常量有 spring, summer, autumn,winter,分别表示春天,夏天,秋天,冬天,系统会自动添加 public static final 修饰
    }
    enum Season{
        spring,summer,autumn,winter;
    //   常量有 spring, summer, autumn,winter,分别表示春天,夏天,秋天,冬天,系统会自动添加 public static final 修饰
    }
     
     
    public class SeasonEnum {
     
        public static void main(String[] args) {
     
     
            System.out.println("请输入季节"+"\n"+"1、春天"+"\n"+"2、夏天"+"\n"+"3、秋天"+"\n"+"4、冬天");
            Scanner scan =new Scanner(System.in);
            int seasons= scan.nextInt();
            change(seasons);
        }
     
        private static void change(int seasons) {
            Season season=Season.spring;
            switch (seasons){
                case 1:
                    season=Season.spring;
     
                    break;
                case 2:
                    season=Season.summer;
                    break;
                case 3:
                    season=Season.autumn;
                    break;
                case 4:
                    season=Season.winter;
                    break;
            }
            System.out.println(season);
        }
    }

    枚舉類別

    enum 定義的枚舉類別預設繼承了java.lang.Enum 類,並實作了java.lang.Serializable 和java.lang.Comparable 兩個接口。

    values(), ordinal() 和valueOf() 方法位於java.lang.Enum 類別中:

    • ##values() 傳回枚舉類別中所有的值。

    • ordinal()方法可以找到每個列舉常數的索引,就像陣列索引一樣。

    • valueOf()方法傳回指定字串值的枚舉常數。

    values()方法

     

    values( ) 方法可以將所有枚舉的成員以陣列形式傳回,也可以透過此方法取得枚舉類型的成員。

    enum Season{
        spring,summer,autumn,winter;
    //   常量有 spring, summer, autumn,winter,分别表示春天,夏天,秋天,冬天,系统会自动添加 public static final 修饰
    }
     
    }
     
     
    public class SeasonEnum {
       public static void main(String[] args) {
    //        迭代季节
            for (Season season : Season.values()) {
                System.out.println(season);
            }
       }
    }

    結果:

    Java中的枚舉怎麼使用

    ordinal()方法

     

    ordinal() 方法可以取得一個成員在枚舉中的索引位置。下面的範例建立一個包含 3 個成員的枚舉類型 Signal,然後呼叫 ordinal() 方法輸出成員及對應索引位置。

    enum Season{
        spring,summer,autumn,winter;
    //   常量有 spring, summer, autumn,winter,分别表示春天,夏天,秋天,冬天,系统会自动添加 public static final 修饰
    }
     
    }
     
     
    public class SeasonEnum {
       public static void main(String[] args) {
    //        迭代季节
            for (Season season : Season.values()) {
    //            ordinal可以找到每个枚举常量的索引,就像数组索引一样。
                System.out.println(season+"  索引为  "+season.ordinal());
            }
       }
    }

    結果:

    Java中的枚舉怎麼使用

    # valueOf()方法

    valueOf()方法傳回指定字串值的枚舉常數

    enum Season{
        spring,summer,autumn,winter;
    //   常量有 spring, summer, autumn,winter,分别表示春天,夏天,秋天,冬天,系统会自动添加 public static final 修饰
    }
     
    }
     
     
    public class SeasonEnum {
       public static void main(String[] args) {
     
    //        使用 valueOf() 返回枚举常量,不存在的会报错 IllegalArgumentException
             System.out.println(Season.valueOf("summer"));
       //    System.out.println(Season.valueOf("summ"));
       }
    }

    結果

    Java中的枚舉怎麼使用

    枚舉類別成員

    列舉跟普通類別一樣可以用自己的變數、方法和建構函數,建構函數只能使用private 存取修飾符,所以外部無法呼叫。

    枚舉既可以包含具體方法,也可以包含抽象方法。如果枚舉類別具有抽象方法,則枚舉類別的每個實例都必須實現它。

    enum Season{
        spring,summer,autumn,winter;
    //   常量有 spring, summer, autumn,winter,分别表示春天,夏天,秋天,冬天,系统会自动添加 public static final 修饰
         
        //    构造方法
        private Season(){
            System.out.println("Constructor called for :" +this.toString());
        }
     
        public void SeasonInfo(){
            System.out.println("spring");
        }
     
    }
     
    }
     
     
    public class SeasonEnum {
       public static void main(String[] args) {
     
             Season season=Season.spring;
             season.SeasonInfo();
       }
    }

    以上是Java中的枚舉怎麼使用的詳細內容。更多資訊請關注PHP中文網其他相關文章!

    陳述:
    本文轉載於:yisu.com。如有侵權,請聯絡admin@php.cn刪除