Item 35. Ordinal

ordinal λ©”μ„œλ“œ λŒ€μ‹  μΈμŠ€ν„΄μŠ€ ν•„λ“œλ₯Ό μ‚¬μš©ν•˜λΌ

λŒ€λΆ€λΆ„μ˜ μ—΄κ±° νƒ€μž… μƒμˆ˜λŠ” μžμ—°μŠ€λŸ½κ²Œ ν•˜λ‚˜μ˜ μ •μˆ«κ°’μ— λŒ€μ‘λ˜κ³ , λͺ¨λ“  μ—΄κ±° νƒ€μž…μ€ ν•΄λ‹Ή μƒμˆ˜κ°€ κ·Έ μ—΄κ±° νƒ€μž…μ—μ„œ λͺ‡ 번째 μœ„μΉ˜μΈμ§€λ₯Ό λ°˜ν™˜ν•˜λŠ” ordinal λ©”μ„œλ“œλ₯Ό μ œκ³΅ν•œλ‹€. λ•Œλ¬Έμ— μ—°κ²° νƒ€μž… μƒμˆ˜μ™€ μ—°κ²°λœ μ •μˆ«κ°’μ„ ordinal λ©”μ„œλ“œλ‘œ 얻을 수 μžˆμ§€λ§Œ, μ΄λŠ” μ ˆλŒ€ μ‚¬μš©ν•˜μ§€ 말아야 ν•œλ‹€.

  • ordinal μ‚¬μš©

enum Ensemble {
    SOLO, DUET, TRIO, QUARTET, QUINTET,
    SEXTET, SEPTET, OCTET, NONET, DECTET;

    public int numberOfMusicians() {
        return ordinal() + 1;
    }
}

class Main {

    public static void main(String[] args) {
        System.out.println(Ensemble.DUET.numberOfMusicians()); // 2, λ§Œμ•½ μˆœμ„œκ°€ λ°”λ€Œλ©΄ λ‹€λ₯Έ 값이 좜λ ₯됨
    }
}
  • μΈμŠ€ν„΄μŠ€ ν•„λ“œ μ‚¬μš©

enum Ensemble {
    SOLO(1), DUET(2), TRIO(3), QUARTET(4), QUINTET(5),
    SEXTET(6), SEPTET(7), OCTET(8), NONET(9), DECTET(10);

    private final int numberOfMusicians;

    Ensemble(int numberOfMusicians) {
        this.numberOfMusicians = numberOfMusicians;
    }

    public int numberOfMusicians() {
        return numberOfMusicians;
    }
}

class Main {

    public static void main(String[] args) {
        System.out.println(Ensemble.DUET.numberOfMusicians()); // 2
    }
}

μΈμŠ€ν„΄μŠ€ ν•„λ“œλ₯Ό μ‚¬μš©ν•˜λ©΄ κ°„λ‹¨ν•˜κ²Œ ν•΄κ²°ν•  수 μžˆλŠ”λ°, 이 방식을 μ‚¬μš©ν•˜λ©΄ 쀑간에 값을 μΆ”κ°€ν•˜κ±°λ‚˜ λΉ„μš°λŠ” λ“±μ˜ μž‘μ—…μ„ μˆ˜ν–‰ν•΄λ„ λ¬Έμ œκ°€ μ—†λ‹€.

ordinal의 μ“°μž„

ordinal λ©”μ„œλ“œλŠ” λŒ€λΆ€λΆ„ μ‚¬μš©ν•  일이 μ—†κ³ , EnumSetκ³Ό EnumMap 같이 μ—΄κ±° νƒ€μž… 기반의 λ²”μš© μžλ£Œκ΅¬μ‘°μ— μ“Έ λͺ©μ μœΌλ‘œ μ„€κ³„λ˜μ—ˆμœΌλ‹ˆ 이 λͺ©μ μ΄ μ•„λ‹ˆλΌλ©΄ μ‚¬μš©ν•˜μ§€ μ•ŠλŠ” 것이 μ’‹λ‹€.

Last updated

Was this helpful?