본문 바로가기
Java/Java

[Java]열거 타입

by 전재경 2022. 11. 11.

열거 타입

한정된 값인 열거 상수 중에서 하나의 상수를 저장하는 타입

 

여기서 Week이 열거 타입이다. Week로 다음과 같이 변수를 선언할 수 있다.

Week today;

today 변수에 저장할 수 있는 것은 Week에 선언된 7개의 열거 상수 중 하나이다.

today = Week.FRIDAY;

 

열거 타입 선언

 

열거 타입을 선언하기 위해서는 먼저 열거 타입의 이름을 정하고 해당 이름으로 소스 파일(.java)을 생성해야 한다.

열거 타입 이름은 관례적으로 첫 글자를 대문자로 하고 나머지는 소문자로 구성

만약 여러 단어로 구성된 이름이라면 각 단어의 첫 글자는 대문자로 하는 것이 관례

Week.java
MemberGrade.java
Productkind.java

public enum 키워드는 열거 타입을 선언하기 위한 키워드이며, 반드시 소문자로 작성

이때 열거 타입 이름은 소스 파일 이름과 대소문자가 모두 일치 해야한다.

public enum 열거타입이름 {...}

열거 타입을 선언했다면 열거 상수를 선언

public enum Week { MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY }

 

열거 타입 변수

열거 타입을 선언했다면 열거 타입을 사용할 수 있다.

열거 타입도 하나의 타입이므로 변수를 선언하고 사용

 

열거 타입은 참조 타입이다.

열거타입 변수;

//Week 열거 타입 변수를 선언한다면

Week today = Week.SUNDAY;

Week birthday = null; // 열거 타입 변수는 null 값을 저장할수 있다.

 

열거 상수는 열거 객체로 생성

열거 타입 변수 Week의 경우 MONDAY부터 SUNDAY까지의 열거 상수는 다음과 같이 총 7개의 Week 객체로 생성

그리고 메소드 영역에 생성된 열거 상수가 해당 Week 객체를 각각 참조

열거 타입이 메모리에 생성되는 방식

Week today = Week.SUNDAY;

열거 타입 변수 today는 스택 영역에 생성

today에 저장되는 값은 Week.SUNDAY 열거 상수가 참조하는 객체의 번지

따라서 열거 상수 Week.SUNDAY와 today 변수는 서로 같은 Week 객체를 참조

그렇기에 today변수와 Week.SUNDAY 상수의 == 연산 결과는 true

today == Week.SUNDAY; //true

 

'Java > Java' 카테고리의 다른 글

항해99 - Java 스터디 과제  (0) 2022.11.18
[Java]StringTokenizer 문자열 분리하기  (0) 2022.11.11
[Java]향상된 for문  (0) 2022.11.11
[Java]배열(Array) 선언 및 초기화,복사  (0) 2022.11.11
[Java]메모리 구조  (0) 2022.11.11

댓글