Java Enum

김태희·2021년 4월 21일
0
post-thumbnail

Java에서 특정 값들을 모아 하나의 타입으로 선언할 수 있습니다. 이 타입을 Enum 타입 이라고 합니다.

예를 들어 한 주의 요일들은 (월, 화, 수, 목, 금, 토, 일) 이 있습니다.
이 요일들을 묶어 Week라는 하나의 Enum타입으로 선언할 수 있습니다.

그리고 Week Enum 타입 내의 값들 (월, 화, 수, 목, 금, 토, 일)Enum 상수 라고 합니다.

각 Enum 상수에 해당되는 Week Enum 객체가 Heap 영역에 생성됩니다.
각 Enum 상수들은 자신의 Week Enum 객체를 Method 영역에서 참조합니다.

Enum 타입의 참조변수로 특정 Week Enum 객체를 참조할 수 있습니다.

예를 들어, 다음의 경우를 보겠습니다.

Week today = Week.MONDAY;

참조 변수 today는 Stack 영역에 저장됩니다.
그리고 이 today는 Method 영역에 있는 MONDAY 객체의 주소값을 그대로 참조합니다.
즉, todayWeek.MONDAY는 Heap 영역에 있는 같은 Week Enum 타입MONDAY 객체를 참조합니다.

따라서, 아래의 테스트 코드는 통과합니다.

@DisplayName("Enum 객체는 각 Enum 상수별로 각각 하나씩 생성되고, 참조된다.")
@Test
void enumTypeTest() {
    Week thisWeekMonday = Week.MONDAY;
    Week nextWeekMonday = Week.MONDAY;
    
    assertThat(thisWeekMonday).isSameAs(nextWeekMonday);
}

참조 : Java Enum이란

profile
Web Back-End (Spring, JPA, AWS)

0개의 댓글