[자바/JAVA] 열거(enum)란?

박정현·2023년 8월 6일
0
post-thumbnail

🎈열거

1) 열거란?

  • 데이터 중에 몇 가지로 한정된 값만 갖는 열거타입이라 한다.
  • 비순서성 상수를 그룹화한 것을 의미한다.
    • 상수를 나열했다.

2) 열거타입 선언

✅ public enum 열거타입명{ 열거상수1, 열거상수2 … }
  • 열거타입을 선언하기 위해서는 열거 타입의 이름을 정하고, 열거타입 이름으로 소스파일(.java)를 생성해야 한다.
  • 소스파일의 내용으로는 열거타입 선언이 온다.
  • 열거타입의 이름은 관례적으로 첫 문자는 대문자, 나머지는 소문자로 한다.
    • Week.java, MemberGrade.java
  • 열거상수는 열거타입의 값으로 사용되며 모두 댐문자로 작성한다.
    • MONDAY, TUESDAY…
  • 예시
    public enum Week{ MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, 
    										SATURDAY, SUNDAY}


2. 열거관련 메소드

1) enum.valueOf(”전달된문자열”);

  • 전달된 문자열과 일치하는 해당 열거체의 상수를 반환
  • Week.valueOf(”MONDAY”); // Week에 MODAY있으면 반환
  • Week.MONDAY; → enum에 몇 번째에 위치하는지(0부터 시작)

2) values()

✅ enum.values(); //배열화
  • 열거타입의 모든 요소를 배열화 시킨다.
  • 열거타입은 순서가 없지만 values메소드를 통해 순서를 만들어 줄 수 있다.
  • 예시
public static final String ADMIN = "admin";

	enum Week {
		ROLE_ADMIN, ROLE_MEMBER, ROLE_PRODUTER // 상수문자열
	}

	public static void main(String[] args) {
		System.out.println("enum(열거형)");
		System.out.println(Week.ROLE_ADMIN);
		System.out.println(Week.ROLE_MEMBER);
		System.out.println(Week.ROLE_PRODUTER);

		// Week(enum)에 "ROLE_ADMIN" 있으면 반환
		System.out.println(Week.valueOf("ROLE_ADMIN"));

		System.out.println(Week.ROLE_MEMBER.ordinal()); // 0부터 시작
		System.out.println(Week.ROLE_ADMIN.ordinal()); // 0부터 시작

		Week[] weeks = Week.values();
		for (Week week : weeks) {
			System.out.println(week + " ");
		}

	}

📚 Reference

신용권, 『혼자공부하는 자』, 한빛미디어(2023)

profile
개발을 개발괴발하지 않기 위한 노력

0개의 댓글