[TIL] enum
βπ» enum μ΄κ±°ν
- μλ‘ μ°κ΄λ μμλ€μ μ§ν©
- μλ‘ κ΄λ ¨μ΄ μλ κ²λ€μ λͺ¨μμ κ·Έκ²λ€μ λ²νΈλ₯Ό 맀겨 λμ κ²
(1) λΆμ : λ‘λ³Άμ΄, νκΉ, κΉλ°₯, μλ
(2) κ³΅λΆ : 곡μ±
, μ°ν, λ³Όν, νκ΄ν, μ§μ°κ°, μ€ν
(3) κ°λ°μ : κ°μν, μ΄νμ, νλ―Όμ
π enum μ₯μ
(1) μμλͺ μ μ€λ³΅ νΌν μ μμ
(2) νμ μμ μ± λ³΄μ₯
(3) μ½λ κ°λ μ± μμΉ
(4) switchλ¬Έ μ¬μ© κ°λ₯
π enum μ΄κ±°ν μ¬μ©
enum μ΄κ±°νμ΄λ¦ { μμλͺ
, μμλͺ
2, ... }
enum Developer { KANGJAMES, LEEJAMES, HONG }
- μμλ λλ¬Έμλ‘ μμ±νλ κ² μΆμ²
(1) μ°Έμ‘° λ°©λ²
μ΄κ±°νμ΄λ¦.μμλͺ
Developer.HONG
(2) λ³μ ν λΉ κ°λ₯
Developer bestdev = Developer.HONG;
π μ΄κ±° κ°μ²΄ λ©μλ
(1) String name()
Week today = week.SUNDAY;
String name = today.name();
- μ΄κ±° κ°μ²΄κ° κ°λ λ¬Έμμ΄ λ¦¬ν΄ (μμ μ΄λ¦)
(2) int ordinal()
- μ΄κ±° κ°μ²΄μ μλ² λ°ν
Week today = Week.MONDAY ;
int ordinal = today.ordinal();
(3) int comepareTo(λΉκ΅κ°)
- μ£Όμ΄μ§ λ§€κ°κ°κ³Ό λΉκ΅ν΄μ μλ² μ°¨μ΄ λ¦¬ν΄
- μ΄κ±°κ°μ²΄ oneμ΄ μ΄κ±°κ°μ²΄ twoλ³΄λ€ μμ΄λ©΄ -
- μ΄κ±°κ°μ²΄ oneμ΄ μ΄κ±°κ°μ²΄ twoλ³΄λ€ λ€λ©΄ +
Week one = Week.MONDAY;
Week two = Week.WEDNESDAY;
int result = one.compareTo(two);
(4) valueOf(λ¬Έμμ΄μ΄λ¦)
- λ§€κ° κ°μΌλ‘ μ£Όμ΄μ§ λ¬Έμμ΄κ³Ό λμΌν λ¬Έμμ΄μ κ°μ§λ μ΄κ±° κ°μ²΄ 리ν΄
Week today = Week.valueOf("SUNDAY");
(5) values()
- λͺ¨λ μ΄κ±° κ°μ²΄λ€μ λ°°μ΄λ‘ 리ν΄
- μ΄κ±° νμ μ λͺ¨λ κ°μ²΄λ€μ λ°°μ΄λ‘ λ§λ€μ΄ 리ν΄
Week[] week = Week.values();
π public static finalμ λ¬Έμ μ
(1) public static final μμ μ μ
- enumμ΄ λ±μ₯νκΈ° μ μ μ¬λ¬ μμλ₯Ό μ μν΄μ μ¬μ©νκΈ° μν΄ 'public static final'λ₯Ό ν΅ν΄ μμ μ€μ
→ But, λ€λ₯Έ λ²μ£Όμμ μμλͺ μ΄ μ€λ³΅λλ κ²½μ° λ°μν μ μμ ( μ»΄νμΌ μλ¬ λ°μ )
public static final int KANGJAMES = 1;
public static final int LEEJAMES = 2;
public static final int HONG = 3;
public static final int WOOJOO = 1;
public static final int HONG = 2;
public static final int SOYOUNG = 3;
(2) μΈν°νμ΄μ€λ₯Ό ν΅ν ꡬλΆ
- μΈν°νμ΄μ€ μ¬μ©νμ¬ μμλͺ μ΄ μ€λ³΅λλ κ²½μ° ν΄κ²°
→ But, νμ μμ μ± λ¬Έμ μκΉ !!!
: Develop.HONGμ κ° 3κ³Ό Bf.HONGμ κ° 2λ₯Ό λΉκ΅νλ©΄ λΉκ΅ν μ μλ κ°λ μ΄μ§λ§ μλ¬ X
interface Develop {
int KANGJAMES = 1, LEEJAMES = 2, HONG = 3;
}
interface Bf {
int WOOJOO = 1, HONG = 2, SOYOUNG = 3;
}
(3) μλ‘ λ€λ₯Έ κ°μ²΄λ‘ μμ±
- μ€λ³΅κ³Ό νμ μμ μ± λ¬Έμ ν΄κ²°
→ But, μ½λκ° κΈΈμ΄μ§κ³ μ¬μ©μ μ μ νμ μ΄κΈ° λλ¬Έμ switchλ¬Έ μ¬μ© X
switchλ¬Έμ intνμ μ΄νμ μ μ, λ¬Έμ, Stringλ§ O
class Develop {
public static final Develop KANGJAMES = new Develop();
public static final Develop LEEJAMES = new Develop();
public static final Develop HONG = new Develop();
}
class Bf {
public static final Bf WOOJOO = new Bf();
public static final Bf HONG = new Bf();
public static final Bf SOYOUNG = new Bf();
}
(4) enumμ μ΄μ©ν μμ μ μ
- μ½λ νμ μμ μ± λ³΄μ₯ λ° μ€λ³΅ μμλͺ μ¬μ© κ°λ₯
- μ½λ κ°λ μ± μ’μ
- switchλ¬Έ μ¬μ© κ°λ₯
enum Develop { KANGJAMES, LEEJAMES, HONG }
enum Bf { WOOJOO, HONG, SOYOUNG }