列挙型は、名前付きの整定定数のコレクションであり、識別子を持つ定数のセットを宣言するために使用されます。列挙は日常生活で非常に一般的で、たとえば、人の性別は「男性」または「女性」のみにすることができ、週は 7 日間のうちの 1 日のみにすることができます。このように、変数に複数の固定値が存在する場合、それを列挙型として定義できます。
Java 列挙クラスは enum キーワードを使用して定義され、各定数はカンマで区切られ、最後にセミコロンが使用されます。
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( ) メソッド
列挙のすべてのメンバーを配列の形式で返すことも、このメソッドを通じて取得します。 列挙型のメンバー。
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); } } }
結果:
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()); } } }
結果:
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
列挙型は独自の変数、メソッド、コンストラクターを使用できます。コンストラクターはプライベートのみを使用できます。アクセス修飾子なので、外部から呼び出すことはできません。
列挙には、具象メソッドと抽象メソッドの両方を含めることができます。列挙型クラスに抽象メソッドがある場合、列挙型クラスのすべてのインスタンスはそれを実装する必要があります。
rree以上がJava で列挙型を使用する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。