Java 列挙とは何ですか?
java 列挙型の定義と使用法
1. 列挙型の定義:
列挙型は A特別なデータ型です。特別な理由は、クラス型でありながら型よりも特別な制約があるためです。ただし、これらの制約の存在により、列挙型がシンプル、安全、便利になります。列挙型を作成するには、enum キーワードを使用します。これは、作成される型が java.lang.Enum クラスのサブクラスであることを意味します (java.lang.Enum は抽象クラスです)。列挙型は、一般的なパターン Class Enum
2. 列挙型の使用:
列挙型クラスの作成: EnumTest
public enum EnumTest { //星期一,星期二,星期三,星期四,星期五,星期六 MON(1), TUE(2),WED(3),THU(4),FRI(5),SAT(6){ public boolean isRest(){ return true; } }, //星期日 SUN(0){ public boolean isRest(){ return true; } }; private int value; private EnumTest(int value){ this.value=value; } public int getValue(){ return value; } public boolean isRest(){ return false; } }
EnumTest 列挙型クラスの使用:
public class EnumMain { public static void main(String[] args) { for (EnumTest enumTest : EnumTest.values()) { System.out.println(enumTest + ":" + enumTest.getValue()); } System.out.println("---------------我是分割线------------"); EnumTest test = EnumTest.SAT; switch (test) { case MON: System.out.println("今天是星期一"); break; case TUE: System.out.println("今天是星期二"); break; case WED: System.out.println("今天是星期三"); break; case THU: System.out.println("今天是星期四"); break; case FRI: System.out.println("今天是星期五"); break; case SAT: System.out.println("今天是星期六"); break; case SUN: System.out.println("今天是星期日"); break; default: System.out.println(test); break; } } }
結果:
MON:1 TUE:2 WED:3 THU:4 FRI:5 SAT:6 SUN:0
---------------私が境界線です-------------
今日は土曜日です
3. 列挙型の利点と欠点:
列挙型が登場する前は、特定の離散値のセットを表現したい場合、よく使用したのはいくつかの定数。例:
public class Entity { public static final int VIDEO = 1;//视频 public static final int AUDIO = 2;//音频 public static final int TEXT = 3;//文字 public static final int IMAGE = 4;//图片 private int id; private int type; public int getId() { return id; } public void setId(int id) { this.id = id; } public int getType() { return type; } public void setType(int type) { this.type = type; }
4. この定数メソッドを使用するデメリット:
1. setType のため、コードの可読性と使いやすさが劣ります。 () メソッドのパラメータは int 型です。
2. unsafe と入力します。ユーザーが呼び出すときは、型が完全に一貫しており、値の範囲が正しい必要があります。 setType(-1); と同様に、合法ではありますが、合理的ではなく、将来プログラムにさまざまな問題を引き起こす可能性があります。
3. 結合度が高く、拡張性が低い。何らかの理由で、Entity クラスの定数の値を変更する必要がある場合、変更が必要なときにその変更を忘れてしまっても冗談ではありません。
列挙型は、このような問題のために生まれました。これらは、任意の用語を別の用語と比較する機能を提供します。
以上がJavaの列挙とは何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。