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?