문제
다음 Java 코드의 출력 결과로 가장 적절한 것은?
Javaenum Tri { A("A"), B("AB"), C("ABC"); private String code; Tri(String code) { this.code = code; } public String code() { return code; } } public class Main { public static void main(String[] args) { Tri t = Tri.values()[Tri.A.name().length()]; System.out.print(t.code()); } }
① A ② AB ③ ABC ④ 오류
정답
2번
해설
정답: 2. Tri.A.name()은 "A"이고 길이는 1이다. Tri.values()[1]은 B이므로 B의 code 값인 "AB"가 출력된다.
오답 풀이
- 1번: values()[0]일 때의 값이다.
- 2번: 인덱스 1에 해당하는 B의 code이므로 정답이다.
- 3번: values()[2]일 때의 값이다.
- 4번: enum 접근과 배열 인덱스 모두 유효하다.
보충 개념 Enum.values()는 선언 순서대로 enum 상수 배열을 반환한다. name()은 enum 상수명을 문자열로 반환한다.