Enum Class(列挙)


SpringBootショッピングセンタープロジェクト商品販売状態
  • SpringBootショッピングセンタープロジェクトの進行中に商品エンティティを実施する場合、商品の販売状態を指定するための定数値を含むEnumクラスに対する疑問
  • .
    Enumクラス
    関連する定数を要素とする集合概念のクラス.
    // enum 클래스의 예
    
    public enum ItemSellStatus {
        SELL, SOLD_OUT
    }
    
    public enum Week {
       	MONDAY, TUSEDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY
    }
    
    public enum Gender {
    	MALE, FEMALE
    }
    enumクラスが必要な場合
    1.enumクラスを使用する前に
  • 性別1に「MALE」と「FEMALE」の値のみが格納されると仮定する
    public class EnumExam {
            public static final String MALE = "MALE";
            public static final String FEMALE = "FEMALE";
    
            public static void main(String[] args) {
                String gender1;
    
                gender1 = EnumExam.MALE;
                gender1 = EnumExam.FEMALE;                  
            }
        }
  • 性別1変数はStringタイプであるため、以下のコードも正常に実行する(予期せぬ)
  • gender1 = "Boy";
    2.enumクラスの使用
  • Genderタイプの変数は、MALEまたはFEMALEのみ代入可能(コンパイル時チェック)
  • 制限値
  • のみ
    enum Gender{
            MALE, FEMALE;
        }
    
    Gender gender2;
    
    gender2 = Gender.MALE;
    gender2 = Gender.FEMALE;
    
        //Gender타입의 변수에는 MALE이나 FEMALE만 대입이 가능. 다른 값은 저장할 수가 없다.  
    
    Enum類の多様な使い方
    1.enumクラスジェネレータと方法
  • 作成者方法および基本方法は、
  • を実施することができる.
  • enum定数に追加属性を付与し、作成者のパラメータ値順に
  • を指定する.
    public enum Color {
    
        RED("빨강",100), GREEN("초록",10), BLUE("파랑",30); 
        
        private String ColorName;
        private int pay;
    
        // 빨강, 100 순서대로 할당된다.
        private Color(String ColorName, int pay){ 
            this.ColorName = ColorName;
            this.pay = pay;
        } 
    
        public void colorInfo(){ 
            System.out.println(ColorName +"의 비용은 " + pay +"입니다."); 
        } 
    }
    
    Color.BLUE.colorInfo();
    2.列挙クラス整数1を返します.
  • ジェネレータとメンバー変数を使用して整数型
  • を返します.
    public enum Tax {
        NONE(0), SALES(10), IMPORT(5);
    
        private final int value;
        private Tax(int value) {
            this.value = value;
        }
    
        public int getValue() {
            return value;
        }
    }
    
    ...
    
    Tax.SALES.getValue();	// 정수형 반환
    
    3.列挙クラス整数2を返す
  • シーケンス()メソッドを使用して定数のインデックス番号
  • を整数で返す.
    public enum Week {
       	MONDAY, TUSEDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY
    }
    
    ...
    
    Week.MONDAY.ordinal();	// 0 반환