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?