Java enum ν΄λμ€
Javaμ enum ν΄λμ€μ λν΄μ μ΄ν΄ν΄λ³΄μ
enum ν΄λμ€
μ μ¬μ©νλκ±ΈκΉ?
enum ν΄λμ€λ μ΄κ±°ν ν΄λμ€λ‘ μλ‘ κ΄λ ¨μλ μμλ€μ νΈλ¦¬νκ² μ¬μ©νκΈ° μν΄μ μ¬μ©νλ€.
λ¬Όλ‘ κ·Έλ₯ ν΄λμ€ μμλ₯Ό μ μν΄μ μ¬μ©ν μλ μλ€. νμ§λ§ νμ λ§ κ°μΌλ©΄ λ΄κ° μλν μμ λΏλ§ μλλΌ λ€λ₯Έ κ°λ μμμ²λΌ μ°μΌ μ μλ€λ λ¬Έμ μ μ΄ μλ€.
public class Example {
public static final String TRUE = "TRUE";
public static final String FALSE = "FALSE";
public static void main(String[] args) {
String state;
state = Example.TRUE;
state = Example.FALSE;
state = "true"; // λ΄κ° μ μν μμκ° μλμ§λ§ νμ
μ΄ κ°μμ κ°λ₯νλ€
}
}
κ·Έλ λ€λ©΄ enum ν΄λμ€λ₯Ό νμ©ν΄μ νμ μ ν΅ν΄ μμλ₯Ό κ²μ¦ν μ μλλ‘ ν΄λ³΄μ
public class Example {
public static void main(String[] args) {
State state;
state = State.TRUE;
state = State.FALSE;
state = "state"; // νμ
μ΄ λ¬λΌμ μ€λ₯κ° λ°μνλ€
}
}
enum State{
TRUE, FALSE
}
κ·Έλ°λ° enum ν΄λμ€λ μ΄λ»κ² μμλ₯Ό λ§λλ κ±ΈκΉ?
μ΄κ²μ μ΄ν΄νκΈ° μν΄μλ enum ν΄λμ€μ μμ±μκ° μλνλ λ°©μμ λν΄μ μμμΌ νλ€.
enum ν΄λμ€μ μμ±μ
μμμ μμ λ₯Ό μμΈν μμ보μ.
enum State{
TRUE, FALSE
}
μ΄ ν΄λμ€λ μ¬μ€ μλμΌλ‘ μ΄λ κ² μμ±μκ° λ§λ€μ΄μ§κ³ μμλ€. μ΄λ μ κ·Ό μ νμκ° privateμΈ μ μ μ£Όλͺ©νμ.
enum State{
static final State TRUE = new State();
static final State FALSE = new State();
private State(){}
}
κ·Έλ λ€λ©΄ βμμ±μμ λ€λ₯Έ κ°μ μ€λ€λ©΄ enum ν΄λμ€μ μμλ€λ κ°μ κ°μ§μ§ μμκΉ?β λΌλ μκ°μ΄ λ€ μ λ μλ€.
μ€μ λ‘ μ°λ¦¬μ μμκ³Ό κ°μ΄ Javaμ enum ν΄λμ€μ μμλ€μ κ°μ κ°μ§ μ μλ€.
enum State{
TRUE(0), FALSE(1)
}
νμ§λ§ μ΄λ β;βμ κ°μ μ μ₯ν λ³μ, μλ‘μ΄ μμ±μλ₯Ό μΆκ°ν΄μ£Όμ΄μΌ νλ€.
enum State{
TRUE(0), FALSE(1); // ';'μ μΆκ°ν΄μ£Όμλ€
private final int value;
State(int value) {this.value = value;}
public int getValue() {return value;}
}
μ¬κΈ°μ μμ±μμ λν΄μ μ’λ λΆμν΄λ³΄μ. μμμμ λ§μ°¬κ°μ§λ‘ μλμ κ³Όμ μ μλμΌλ‘ μ΄λ€μ§λ€.
μ΄λ λ§μ°¬κ°μ§λ‘ μ κ·Όμ νμλ privateμ΄κΈ° λλ¬Έμ ν΄λμ€ μΈλΆμμ νΈμΆν μ μλ€.
enum State{
static final State TRUE = new State(0);
static final State FALSE = new State(1);
private State(int value) {this.value = value;}
}