ホームページ > Java > &#&チュートリアル > Java で列挙型を使用する方法

Java で列挙型を使用する方法

WBOY
リリース: 2023-04-20 11:49:06
転載
1192 人が閲覧しました

    列挙型 (enum)

    列挙型は、名前付きの整定定数のコレクションであり、識別子を持つ定数のセットを宣言するために使用されます。列挙は日常生活で非常に一般的で、たとえば、人の性別は「男性」または「女性」のみにすることができ、週は 7 日間のうちの 1 日のみにすることができます。このように、変数に複数の固定値が存在する場合、それを列挙型として定義できます。

    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 を返します。定数

    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"));
       }
    }
    ログイン後にコピー

    Result

    Java で列挙型を使用する方法

    列挙型クラスのメンバー

    列挙型は独自の変数、メソッド、コンストラクターを使用できます。コンストラクターはプライベートのみを使用できます。アクセス修飾子なので、外部から呼び出すことはできません。

    列挙には、具象メソッドと抽象メソッドの両方を含めることができます。列挙型クラスに抽象メソッドがある場合、列挙型クラスのすべてのインスタンスはそれを実装する必要があります。

    rree

    以上がJava で列挙型を使用する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

    関連ラベル:
    ソース:yisu.com
    このウェブサイトの声明
    この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
    人気のチュートリアル
    詳細>
    最新のダウンロード
    詳細>
    ウェブエフェクト
    公式サイト
    サイト素材
    フロントエンドテンプレート