1.μ΄κ±°ν ν΄λμ€ (enum class) μ μ
μμΌ: μ, ν, μ, λͺ©, κΈ, ν , μΌ
λ¬λ ₯: JAN, FEB, MAR, APR, MAY, JUNE ....
κ³Ό κ°μ΄ μλ‘ κ΄λ ¨ μλ μμλ€μ λͺ¨μλκ³ , ν΄λΉ μμλ€μ λν΄ μ μν ν΄λμ€
*μμλ?
μ΄κ±°ν ν΄λμ€ μμ ν΅μ¬μ΄ λλ κ°μ μ΄μΌκΈ° νλ κ²μ΄μ§, κΌ μ«μμΌ νμ μλ€. μ μ, μ€μ, λ¬Έμμ΄ λͺ¨λ κ°λ₯νλ€.
μμ μλ₯Ό ν΄λΉ μ μμ λ°λΌ λλμ΄λ³΄λ©΄,
ν΄λμ€ μ΄λ¦: μμΌ / μμ: μ, ν, μ, λͺ©, κΈ, ν , μΌ
ν΄λμ€ μ΄λ¦: λ¬λ ₯/ μμ: JAN, FEB, MAR, APR, MAY, JUNE ....
μ΄λ€.
2. λ¬Έλ²μ νΉμ§
1. μ΄κ±°λ μμλ€μ μ°¨λ‘λλ‘ 0λΆν° μμνλ indexλ₯Ό κ°μ§λ€.
2. μμλ€μ λͺ¨λ λλ¬Έμλ‘ μ μ΄μΌνλ€.
3. μμμ νΉμ κ°λ€μ μ°κ²°μν€μ§ μμ κ²½μ°μλ, μμ μ μΈ ν μΈλ―Έμ½λ‘ (;)μ λΆμ΄μ§ μλλ€.
enum Day {
MON,TUE,WEN,TUR,FRI,SAT,SUN
}
4. μμμ νΉμ κ°λ€μ μ°κ²°μν€λ κ²½μ°μλ μμ μ μΈ ν μΈλ―Έμ½λ‘ (;)μ λΆμΈλ€.
enum Day {
//μμΌμ μμ(μμ΄νκΈ°)κ³Ό νΉμ κ°(νκΈνκΈ°)μ μ°κ²° μν€λ κ²
MON("μ"),TUE("ν"),WED("μ"),TUR("λͺ©"),FRI("κΈ"),SAT("ν "),SUN("μΌ");
//μμμ μΈμ€ν΄μ€ λ³μ -> μμ νλ νλ μμ κ°μ²΄λΌκ³ μκ°νλ κ²μ΄ νΈνλ€.
private final String KOR;
//μΈμ€ν΄μ€ λ³μμ κ°μ λ£λ μμ±μ
Day(String name) {
this.KOR = name;
}
//μμλ€μ νκΈνκΈ°λΌλ λ³μλ₯Ό λ°ννλ 맀μλ
public String getKOR(){
return KOR;
}
}
3. μ΄κ±°ν μ μΈ
(1) μ΄κ±°ν ν΄λμ€ μ μΈ
//ν΄λμ€ μΈλΆ
enum ν΄λμ€μ΄λ¦ {
μμ1, μμ2, μμ3, ...
}
//ν΄λμ€ λ΄λΆ
public class Test {
public enum ν΄λμ€ μ΄λ¦ {
μμ1, μμ2, μμ3, ...
}
}
(2) μ΄κ±°ν ν΄λμ€ μ¬μ©λ² (μμλ₯Ό λ³μμ λ£κΈ° )
//μ΄λ€ ν΄λμ€μ λ΄λΆ
μ΄κ±°ν ν΄λμ€ μ΄λ¦ λ³μ μ΄λ¦ = ν΄λμ€μ΄λ¦. λ³μμ λ£κ³ μΆμ μμ;
//μμ Day μ΄κ±°ν ν΄λμ€λ₯Ό μ΄μ©νλ€κ³ μΉλ©΄
Day day1 = Day.MON;
*μμ
//λ³μμμ μμ μ§μ΄λ£κΈ°
Resolution resolution = Resolution.FHD;
System.out.println(resolution); // FHDκ° μ°νλ€.
System.out.println("λμμ λ
Ήν νμ§ : ");
//switch-case λ¬Έ μ΄μ©
switch (resolution) {
// resolution == HD μ΄λ©΄
case HD:
System.out.println("μΌλ°νμ§");
break;
case FHD:
System.out.println("κ³ νμ§");
break;
case UHD:
System.out.println("μ΄κ³ νμ§");
break;
}
4. μ΄κ±°ν 맀μλ
μ΄κ±°ν ν΄λμ€κ° κΈ°λ³Έμ μΌλ‘ μ¬μ©ν μ μλ 맀μλλ€μ΄ μλ€. μ°λ¦¬λ κ±°κΈ°μ κ°μ₯ λ§μ΄ μ°μ΄λ κ²λ§ μμ보μ.
μμ μ ν ClassNameμ μμμ΄λ€. μ΄ κ³³μλ μμ μ΄ λ§€μλλ₯Ό μ°λ €κ³ νλ μ΄κ±°ν ν΄λμ€μ μ΄λ¦μ μ°λ©΄ λλ€.
(1) ClassName.valueOf( String arg )
()μμ λ¬Έμμ΄κ³Ό κ°μ κ°μ μμλ₯Ό λ°ν. μμΌλ©΄ Exceptionμ΄ λ°μνλ€.
*μμ
enum Resolution {
HD,FHD,UHD
}
public class Enum_Ex{
//UHDμ κ°μ μμ μ°Ύμμ κ°μ Έμ¨ λ€ resolutionμ΄λ λ³μμ μ μ₯
Resolution resolution = Resolution.valueOf("UHD");
}
** μ¬ν
ClassName.valueOf(Class<T> class, String arg)
λ겨λ°μ class μμ ν΄λΉ Stringμ μ°Ύμ κ·Έκ²κ³Ό κ°μ κ°μ enum μ μμλ₯Ό μ°Ύμ λ°ν
(2) ClassName.values()
enum ν΄λμ€ λ΄μ μμλ₯Ό μ°¨λ‘λλ‘ λ°ν
(3) μμ.name()
νΈμΆλ μμλ₯Ό String μΌλ‘ λ°ν
(4) μμ.ordinal()
νΈμΆλ μμμ indexλ₯Ό λ°ν
**μμ
//μ μΈ
enum Day {MON,TUE,WED,TUR,FRI,SAT,SUN}
public class enum_EX {
//for-each ꡬ문 > μ΄κ±°ν ν΄λμ€λ₯Ό μν
// todayλΌλ Dayν λ³μμ Dayμ μμλ€μ μ°¨λ‘λλ‘ λμ
// νμ¬ λμ
λ μμμ μ΄λ¦, indexλ₯Ό μΆλ ₯
for (Day today : Day.values()){
System.out,println("μ€λμ μμΌμ : " + today.name() + "μ΄κ³ μμΌμ μμλ " + today.ordinal());
}
}
5. λ³μ, μμ±μ, 맀μλλ₯Ό μ΄μ©ν΄ μμμ νΉμ κ° μ°κ²°μν€κΈ°
λ¨Όμ κ° μμμ λν΄ λ£μ κ°μ μμ μμ ()μμ λ£μ΄μ€μΌ νλ€.
enum ν΄λμ€ λ΄μ λ³μλ₯Ό ν΅ν΄μ κ° μμμ λν μ 보λ₯Ό κΈ°μ ν μ μλ€.
enum ν΄λμ€μ μμ±μλ μμμ λ³μλ₯Ό μ΄μ΄μ€λ€.
enum ν΄λμ€μ Getter 맀μλλ μμμ λ³μ κ°μ λ°νν΄μ 무μμ΄ λ€μ΄μλμ§ λ³΄μ¬μ€λ€.
*μμ
enum Day {
//μμΌμ μμ(μμ΄νκΈ°)κ³Ό νΉμ κ°(νκΈνκΈ°)μ μ°κ²° μν€λ κ²
MON("μ"),TUE("ν"),WED("μ"),TUR("λͺ©"),FRI("κΈ"),SAT("ν "),SUN("μΌ");
//μμμ μΈμ€ν΄μ€ λ³μ
private final String KOR;
//μΈμ€ν΄μ€ λ³μμ κ°μ λ£λ μμ±μ
Day(String name) {
this.KOR = name;
}
//μμλ€μ νκΈνκΈ°λΌλ λ³μλ₯Ό λ°ννλ 맀μλ
public String getKOR(){
return KOR;
}
}
**λ³μκ° 2κ° μ΄μμΌ λμ μμ
//μ μΈ - κ° μμμ λ£μ κ°λ κ°μ΄!
enum Direction {
EAST(1, "<"), WEST(2, ">"), NORTH(3, "^"), SOUTH(4,"V")
private final int index;
private final String symbol;
Direction(int first_One, String secoend_One)
{
this.index = first_One;
this.symbol = secoend_One;
}
// this.μ΄ νμμλ€. 맀μλ νΈμΆ μ μμμ΄λ¦.Getter맀μλ()λΌμ λ¬΄μ¨ μμμΈμ§ νΉμ ν΄μ§λ€.
public int getIndex(){
return index;
}
public String getSymbol(){
return symbol;
}
}
//νλμ© κ°λ€μ΄ μ λ€μ΄μλ νΈμΆ
public class enum_EX {
for(Direction D : Direction.values()) {
System.out.println(Direction.name() + " : " + Direction.getindex()
+ " : " + Direction.getSymbol());
}
}
4.μ κ²
(1) μ΄κ±°νμ΄λ? / μμλ?
(2) μ΄κ±°ν λ¬Έλ²μ νΉμ§(4κ°μ§)
(3) μ΄κ±°ν ν΄λμ€ μ μΈ / μ΄κ±°ν μλ£ν λ³μ μμ μμ κ° μ§μ΄ λ£κΈ°
(4) μ΄κ±°ν ν΄λμ€μ 맀μλ κ°κ° λ» ClassName.valueOf(), ClassName.values(), μμ.name(), μμ.ordinal()
(5)μΈμ€ν΄μ€ λ³μ, μμ±μ, 맀μλλ₯Ό μ΄μ©ν΄ μμμ νΉμ κ° μ°κ²°μν€κΈ° > μ½λ λ³΄κ³ μ΄ν΄λ§ νμ