βοΈ κΉμνμ μ€μ μλ° - μ€κΈ 1νΈ μ λ£κ³ μμ±νλ λ³΅μ΅ λΈλ‘κ·Έ μ λλ€.
0. λ°°κ²½
μνλ μ ν΄μ§ κ°μ λνλ΄κΈ° μν΄μ μλ°μμ enum μ λ§μ΄ μ¬μ©νλ€
μ΄λ²μ enum μ΄ μ겨λκ² λ μ΄μ λΆν° μ΄λ»κ² μ¬μ©νλ©΄ λλμ§ μμ보μ !!
1. κ³ κ° λ±κΈ ꡬννκΈ°
κ³ κ°μ 3κ°μ λ±κΈμΌλ‘ λλκ³ , μνμ ꡬ맀ν λ λ±κΈλ³λ‘ ν μΈμ μ μ©νλ €κ³ νλ€
π± BASIC λ±κΈ → 10% ν μΈ
βοΈ GOLD → 20% ν μΈ
π DIAMOND → 30% ν μΈ
κ°μ₯ λ¨Όμ λ μ¬λ¦΄ μ μλ ꡬν λ°©λ²μ String μ μ¬μ©νλ κ²μ΄λ€.
1-1. String μ¬μ©
public int discount(String grade, int price) {
int discountPercent = 0;
if (grade.equals("BASIC")) {
discountPercent = 10;
} else if (grade.equals("GOLD")) {
discountPercent = 20;
} else if (grade.equals("DIAMOND")) {
discountPercent = 30;
} else {
System.out.println(grade + ": ν μΈ X");
}
return price * discountPercent / 100;
}
String νμ μ μ¬μ©ν΄μ λ§€κ°λ³μλ‘ grade λ₯Ό λ°μ ν equals λ‘ λΉκ΅ν΄μ ν μΈ νΌμΌνΈλ₯Ό 리ν΄ν μ μλλ‘ νλ€
νμ§λ§, μ΄ λ°©μμ μ¬λ¬ κ°μ§ λ¬Έμ λ₯Ό κ°μ§λ€.
- μ‘΄μ¬νμ§ μλ λ±κΈμ μ λ ₯ν κ²½μ° (VIP)
- μ€νλ₯Ό μ λ ₯ν κ²½μ° (basiic)
- μλ¬Έμλ₯Ό μ λ ₯ν κ²½μ° (basic)
λ΄κ° μνλ λ°©μλλ‘ λμνμ§ μμ μ μλ€.
μ 리νμλ©΄ λ±κΈμ λ¬Έμμ΄μ μ¬μ©νλ©΄ λ€μκ³Ό κ°μ λ¬Έμ κ° λ°μν μ μλ€
- νμ μμ μ± λΆμ‘± : λ¬Έμμ΄μ μ€νκ° λ°μνκΈ° μ½λ€
- λ°μ΄ν° μΌκ΄μ± λ¨μ΄μ§ : GOLD, gold, Gold κ° λͺ¨λ κ°μ μλ―Έλ₯Ό κ°μ§μ§λ§, String μ μ νν μΌμΉν΄μΌμ§λ§ νλ€
- κ°μ μ ν λΆμ‘± : μλͺ»λ λ¬Έμμ΄μ μ€μλ‘ μ λ ₯ν μ μμ§λ§ μ νλμ§ μλλ€.
- μ€λ₯ λ°μ μ μ»΄νμΌ μ€λ₯ κ°μ§ λΆκ° : λ°νμμμ κ°μ§λκΈ° λλ¬Έμ μ€λ₯ κ°μ§κ° μ΄λ ΅λ€
1-2. μμ μ¬μ©
public class StringGrade {
public static final String BASIC = "BASIC";
public static final String GOLD = "GOLD";
public static final String DIAMOND = "DIAMOND";
}
μμ²λΌ λ³λμ ν΄λμ€λ₯Ό λ§λ λ€μ μμλ€μ λͺ¨μμ μ¬μ©νλ©΄ μμ λ¬Έμ λ₯Ό μ‘°κΈμ΄λλ§ ν΄κ²°ν μ μλκ²μ²λΌ 보μΈλ€.
νμ§λ§, νλΌλ―Έν°λ‘ String grade λ₯Ό λ°κΈ° λλ¬Έμ String μ μ¬μ©νμ λλ κ°μ μ€λ₯κ° λ°μνλ€
2. νμ μμ μ΄κ±°ν ν¨ν΄
1λ²μμ λ°μν λ¬Έμ λ₯Ό ν΄κ²°νκΈ° μν΄μλ νμ μμ μ΄κ±°ν ν¨ν΄μ μ¬μ©ν μ μλ€
public class ClassGrade {
public static final ClassGrade BASIC = new ClassGrade();
public static final ClassGrade GOLD = new ClassGrade();
public static final ClassGrade DIAMOND = new ClassGrade();
}
ꡬν λ°©λ²
- νμ λ±κΈμ λ€λ£¨λ ClassGrade ν΄λμ€λ₯Ό λ§λ λ€
- νμ λ±κΈλ³λ‘ ClassGrade λ₯Ό λ°ννλ ν΄λμ€ μμ λ³μλ₯Ό λ§λ λ€ (static final)
- κ°κ°μ μμλ§λ€ λ³λμ μΈμ€ν΄μ€λ₯Ό μμ±νκ³ λ³μμ λμ νλ€
κ·Έλ¬λ©΄ νμ λ±κΈμ λνλ΄λ νμ μμ μ΄κ±°ν ν¨ν΄μ΄ ꡬνλλ€.
static final μ μ¬μ©ν΄μ ν΄λμ€ μμ λ³μλ‘ λ§λ€μκΈ° λλ¬Έμ ν΄λμ€.λ³μλͺ μΌλ‘ μ¬μ©ν μ μκ³ ,
λ§€κ°λ³μλ‘ ClassGrade λ₯Ό λκΈ°κ³ μΈμλ‘λ μ¬μ©ν μ μλ€.
μ¬κΈ°μ νλμ λ¬Έμ κ° μλ€.
λ°λ‘ κ°μ²΄λ₯Ό μ§μ μμ±ν΄μ μΈλΆμμ μλ λ±κΈμ μ§μ λ§λ€ μ μλ€λ μ μ΄λ€.
νμ§λ§, μ΄λ° κ²½μ°μλ ClassGrade μμ±μλ₯Ό private λ‘ λ§λ€μ΄μ£Όλ©΄ λ¬Έμ κ° ν΄κ²°λλ€
private ClassGrade() { }
μ₯μ
- νμ μμ μ± ν₯μ : μλͺ»λ κ°μ μ λ ₯νλ λ¬Έμ λ₯Ό κ·Όλ³Έμ μΌλ‘ λ°©μ§νλ€
- λ°μ΄ν° μΌκ΄μ± : μ ν΄μ§ κ°μ²΄λ§ μ¬μ©ν μ μλ€
- μ νλ μΈμ€ν΄μ€ μμ± : μ¬μ μ μ μλ λͺ κ°μ μΈμ€ν΄μ€λ§ μμ±νλ€
- νμ μμ μ± : μλͺ»λ κ°μ΄ ν λΉλκ±°λ μ¬μ©λλ κ²μ μ»΄νμΌ μμ μ λ°©μ§νλ€
→ String κ³Ό μμλ₯Ό μΌμ λ λ°μνλ λ¨μ λ€μ λͺ¨λ 컀λ²ν μ μλ€ !
λ¨μ
νμ§λ§, μ΄ ν¨ν΄μ ꡬννλ €λ©΄ λ§μ μ½λλ₯Ό μμ±ν΄μΌνκ³
λ§μ½ κΉλ°νκ³ private μμ±μλ₯Ό μΆκ°νμ§ μμΌλ©΄ νμ μμ μ΄κ±°ν ν¨ν΄μ΄ κ°μ§κ³ μλ μ₯μ λ€μ΄ λͺ¨λ κΉ¨μ§λ€
κ·Έλ κΈ° λλ¬Έμ μλ°λ νμ μμ μ΄κ±°νμ μ½κ² μ¬μ©ν μ μλλ‘ Enum Type μ μ 곡νλ€
3. μ΄κ±°ν Enum Type
public enum Grade {
BASIC, GOLD, DIAMOND;
}
- ν΄λμ€ λμ enum μ μ¬μ©
- μνλ μμμ μ΄λ¦μ λμ΄
ν΄μ£Όλ©΄ Enum μ μ¬μ©ν μ μλ€.
public class Grade extends Enum {
public static final ClassGrade BASIC = new ClassGrade();
public static final ClassGrade GOLD = new ClassGrade();
public static final ClassGrade DIAMOND = new ClassGrade();
// private μμ±μ μΆκ°
private ClassGrade() {}
}
- enum μ½λλ 2λ²μμ μ΄ν΄λ΄€λ νμ μμ μ΄κ±°ν ν¨ν΄ μ½λμ λμΌνκ² λμνλ€.
- μ΄κ±°νλ ν΄λμ€λ‘, μλμΌλ‘ java.lang.Enum μ μμλ°λλ€
μ₯μ
- νμ μμ μ± ν₯μ : μ ν¨νμ§ μμ κ°μ΄ μ λ ₯λ κ°λ₯μ±μ΄ μλ€
- κ°κ²°μ± λ° μΌκ΄μ± : μ½λκ° λ κ°κ²°νκ³ λͺ νν΄μ§λ€
- νμ₯μ± : μλ‘μ΄ νμ λ±κΈμ μΆκ°νκ³ μΆμΌλ©΄, Enum μ μλ‘μ΄ μμλ§ μΆκ°νλ©΄ λλ€
μ£Όμ λ©μλ
λ©μλλͺ | μ€λͺ |
values() | λͺ¨λ enum μμλ₯Ό ν¬ν¨νλ λ°°μ΄μ λ°ν |
valueOf(String name) | μ£Όμ΄μ§ μ΄λ¦κ³Ό μΌμΉνλ enum μμλ₯Ό λ°ν |
name() | enum μμμ μ΄λ¦μ λ¬Έμμ΄λ‘ λ°ν |
ordinal() | enum μμμ μ μΈ μμλ₯Ό λ°ν (0λΆν° μμ) |
toString() | enum μμμ μ΄λ¦μ λ¬Έμμ΄λ‘ λ°ν, μ€λ²λΌμ΄λ κ°λ₯ |
π¨ ordinal() μ£Όμμ¬ν
ordinal() μ μμμ μ μΈ μμλ₯Ό λ°ννλ€.
νμ§λ§ κ°κΈμ !! μ¬μ©νμ§ μλκ² μ’λ€
μμΉκ° κ³ μ λμ΄ μλκ² μλκΈ° λλ¬Έμ μ€κ°μ μμκ° μΆκ°λκ±°λ μμΉκ° λ°λλ©΄ λͺ¨λ μμΉκ° λ³κ²½λ μ μλ€
'π± μΈνλ° > βοΈ κΉμνμ μ€μ μλ° - μ€κΈ 1νΈ' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
μλ° Object ν΄λμ€ (0) | 2025.09.01 |
---|---|
μλ° λνΌ, Class μ΄μ 리 (0) | 2025.07.19 |
μλ° μμΈμ²λ¦¬ μ΄μ 리 (1) | 2025.07.11 |
μλ° μ€μ²© ν΄λμ€μ λ΄λΆ ν΄λμ€ (3) | 2025.07.09 |
μλ° λ μ§μ μκ° λΌμ΄λΈλ¬λ¦¬ μ΄μ 리 (0) | 2025.07.07 |