[Java]列挙(enum)


1.列挙型
Enumは,相互に関連する定数集合を宣言する際に用いられる資料型である.
他の変数とは異なり、変更や変更が可能なタイプではなく、宣言された値でのみ使用(共有)できる資料型です.
定数は、既存の静的finalから繰り返しリスト可能に定義された方法で一度にパッケージ定義される(改良された)方法で定義することができる.
2.列挙式の宣言と使用
たとえばmain関数では、MALEとFEMALEの2つの文字列だけを格納します.
  • 既存の静的final Stringによって宣言する方法
  • public static final String MALE = "MALE;
    public static final String FEMALE = "FEMALE";
    
    public static void main(String[] args){
    	String gender1;
        
        gender1 = class.MALE;
        gender1 = class.FEMALE;
    }
    この方法でmain関数内において,性別1文字列にMALE,FEMALE文字列を格納する.
    ただし、上記の方法では構文エラーがないため、他の文字列にも変数を割り当てる(修正する)ことができます.
    String gender1;
    
    gender1 = "boy";
    これにより、異なる文字列を加えることができ、問題が発生します.
  • 改善方法;enumデータ型宣言方法
  • 改良された方法はenum資料型,すなわち定数を1つの集合として利用できる資料型である.
    まずenumデータ型を宣言し、classを宣言するように定義します(定数をリストします).
    enum Gender {
    	MALE, FEMALE;
    }
    enumで宣言された定数は使用できますが、単独で変更したり割り当てたりすることはできません.
    Enumは静的final String値であり、静的クラスや関数で使用できます.
    public static void main(String[] args){
    	Gender gender2; 
       	gender2 = Gender.MALE;
        gender2 = Gender.FEMALE;
    }
    main関数の内部で、enumデータ型に変数を宣言してから使用します.
    静的変数を使用するのと同じようにenum.定数はvalue形式で使用します(変更不可).
    gender2 = "Boy";
    上記の配分は不可能です.
    3.参考資料
    プログラマー講座
    https://programmers.co.kr/learn/courses/5/lessons/423
    enum
    https://www.nextree.co.kr/p11686/