Java Enum 문제 풀어보기1
Enum 문제 풀어보기
회원 인증 등급을 정하는 열거형을 만들고 등급은 GUEST, LOGIN, ADMIN이다.
등급에 따라 권한레벨과 설명을 조회할 수 있도록 getter 생성한다.
- GUEST
- auth= Low
- description = 손님
- LOGIN
- auth = Middle
- description = 회원
- ADMIN
- auth = High
- description = 관리자
AuthGrade.class
public enum AuthGrade {
GUEST("Low", "손님"),
LOGIN("Middle", "회원"),
ADMIN("High", "관리자");
private final String auth;
private final String description;
AuthGrade(String auth, String description) {
this.auth = auth;
this.description = description;
}
public String getAuth() {
return auth;
}
public String getDescription() {
return description;
}
}
인증 등급 조회하기
- 호출부인 Main 클래스에서 결과를 조회하도록 코드 작성
- 앞에서 만든 AuthGrade 클래스를 사용한다.
public class Main {
public static void main(String[] args) throws Exception {
AuthGrade[] auths = AuthGrade.values();
for (AuthGrade auth : auths) {
System.out.println(auth.name() + "의 권한: " + auth.getAuth() + ", 설명: " + auth.getDescription());
}
}
}
인증 등급 열거형 활용 코드
- 호출부에서 사용한 Main 클래스에서 이어서 사용하기
- 인증 등급에 따라 화면메뉴를 다르게 표시한다.
출력 화면 - GUEST
등급을 입력하세요. [GUEST, LOGIN, ADMIN]: GUEST
손님으로 입장하였습니다.
==MAIN MANU==
- 시작하기
출력 화면 - LOGIN
등급을 입력하세요. [GUEST, LOGIN, ADMIN]: LOGIN
손님으로 입장하였습니다.
==MAIN MANU==
- 시작하기
- 우편함
출력 화면 - ADMIN
등급을 입력하세요. [GUEST, LOGIN, ADMIN]: LOGIN
손님으로 입장하였습니다.
==MAIN MANU==
- 시작하기
- 우편함
- 관리자 옵션
Main.class
public class Main {
public static void main(String[] args) throws Exception {
System.out.print("등급을 입력하세요. [GUEST, LOGIN, ADMIN]: ");
Scanner scanner = new Scanner(System.in);
String login = scanner.nextLine();
AuthGrade access = AuthGrade.valueOf(login.toUpperCase());
System.out.println(access.getDescription() + "으로 입장하였습니다.");
System.out.println("==메뉴 목록==");
System.out.println("- 메인 화면");
if (access.name().equals("LOGIN")) {
System.out.println("- 우편함");
}
if (access.name().equals("ADMIN")) {
System.out.println("- 우편함");
System.out.println("- 관리자 옵션");
}
}
}
등급을 입력하세요. [GUEST, LOGIN, ADMIN]: ADMIN
관리자으로 입장하였습니다.
==메뉴 목록==
-메인 화면
-우편함
-관리자 옵션
- valueOf(...) 인자 값을 보면 toUpperCase() 사용하여 대문자로 변환해서 입력하도록 하였다. 사용자가 admin 으로 입력할 수 있기 때문이다.