Загружаем каталог…
Загружаем каталог…
authGrade enum 실습 문제에서 input의 grade 별로 뜨는 화면이 다르게 나오게 하기 부분에서 막혔다. 사실 문제에 맞춰서 통짜로 프린트 메서드를 써도 결과값은 맞출수 있으나 이렇게 풀고싶지 않았다. 등급에 지정된 level을 이용하여 0보다 크면 ~~가 출력되기 를 이용할수 있었다. (문제의 의도) 주어진 변수들과 조건들은 힌트이다. 어떻게 이용해서 풀면 좋을지 그걸 궁리해 보자!! 이해가 필요했던 부분 AuthGrade authGrade = AuthGrade.valueOf(input.toUpperCase()); AuthGrade의 등급에 맞는지 안맞는지를 검사하는 valueOf 대소문자 모두 대문자로 바꿔주는 toUpperCase() 그걸 AuthGrade의 변수 authGrade에 넣어 아래에서도 쓴다 package enumeration.test.ex1; import java.util.Scanner; public class AuthGradeMain2 { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.print("당신의 등급을 입력하세요 [GUEST, LOGIN, ADMIN]: "); String input = scanner.nextLine(); AuthGrade authGrade = AuthGrade.valueOf(input.toUpperCase()); // valueOf()가 엉뚱한 글자 들어오면 터트려라 라는 뜻 예외처리 System.out.println("당신의 등급은 " + authGrade.getDescription() + " 입니다."); System.out.println("==메뉴 목록=="); if (authGrade.getLevel() > 0) { System.out.println("- 메인 화면"); } if (authGrade.getLevel() > 1) { System.out.println("- 이메일 관리 화면"); } if (authGrade.getLevel() > 2) { System.out.println("- 관리자 화면"); } } } valueOf의 정확한 역할 3단계 검사 (검문소):"들어온 글자("ADMIN")가 우리 등급 목록에 있나?" → 없으면 즉시 에러 터뜨림 (IllegalArgumentException) 소환 (핵심!):목록에 있는 게 확인되면, 단순 글자("ADMIN")는 버리고, 내부에서 미리 준비해 둔 진짜 알맹이 객체(AuthGrade.ADMIN)를 창고에서 꺼내옵니다. 건네주기:꺼내온 그 진짜 객체를 authGrade라는 변수 손에 쥐여줍니다. 비유로 끝내기: 종이 쪽지와 진짜 회원 카드 사용자가 키보드로 입력한 input = "ADMIN"이라고 삐뚤빼뚤 손으로 쓴 종이 쪽지입니다. valueOf 검문원:쪽지를 봅니다. "x"라고 적혀 있으면? → "이런 등급 없어!" 하고 쪽지를 찢어버립니다 (에러 폭발). "ADMIN"이라고 적혀 있으면? → "확인 완료." 하고 쪽지는 버린 뒤, 금고에서 각종 기능(getLevel() 등)이 탑재된 진짜 '어드민 마그네틱 카드(객체)'를 꺼내줍니다. AuthGrade authGrade = ...:방금 검문원이 건네준 진짜 마그네틱 카드를 내 주머니(authGrade 변수)에 쏙 집어넣는 것입니다. .valueOf() 1 Enum (열거형) — 방금 배운 것 역할: "문자열 이름표 줄 테니, 거기에 해당하는 Enum 객체 꺼내줘! "AuthGrade.valueOf("ADMIN") → AuthGrade.ADMIN 반환 2 래퍼 클래스 (Wrapper Class: Integer, Double, Boolean 등) 역할: "문자열이나 기본형 숫자 줄 테니, 자바 객체 포장지로 감싸줘! "Integer.valueOf("100") → 글자 "100"을 숫자 객체 100으로 변환 Boolean.valueOf("true") → 글자 "true"를 참/거짓 객체 true로 변환 String.valueOf(123) → 숫자 123을 글자 "123"으로 변환 정리 Enum이나 단일 값 변환(래퍼 클래스): "하나를 변환해서 객체 하나로 바꾼다" → valueOf() List, Set, Map: "여러 개를 모아서 바구니를 만든다" → of()
То, что RADAR обнаружил и классифицировал для этой возможности. Это опубликованный источником текст, а не подтверждение, что предложение ещё действует.
이넘아저씨 문제 회고 Enum / .valueOf()/. authGrade enum 실습 문제에서 input의 grade 별로 뜨는 화면이 다르게 나오게 하기 부분에서 막혔다. 사실 문제에 맞춰서 통짜로 프린트 메서드를 써도 결과값은 맞출수 있으나 이렇게 풀고싶지 않았다. 등급에 지정된 level을 이용하여 0보다 크면 ~~가 출력되기 를 이용할수 있었다. (문제의 의도) 주어진 변수들과 조건들은 힌트이다. 어떻게 이용해서 풀면 좋을지 그걸 궁리해 보자!! 이해가 필요했던 부분 AuthGrade authGrade = AuthGrade.valueOf(input.toUpperCase()); AuthGrade의 등급에 맞는지 안맞는지를 검사하는 valueOf 대소문자 모두 대문자로 바꿔주는…
Открыть источник