본문 바로가기
Programing/JAVA (& 혼공자Java)

자바(Java) - 열거 타입

by a.k.a DUKI 2020. 9. 23.
728x90
반응형

열거 타입

데이터 중에는 몇가지로 한정된 값만을 갖는 경우가 흔이 있다.

  • 요일에 대한 월, 화, 수, 목, 금, 토, 일 7개의 값만 갖고,
  • 계절에 대한 봄, 여름, 가을, 겨울 4개의 값만 갖는다.

이와 같이 한정된 값만을 갖는 타입을 열거 타입(enumeration type)이라 한다.

 

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

 

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

// Week    --> 열거 타입 이름
// Mon~Sun --> 열거 상수

 

Week가 열거 타입이다. Week로 아래처럼 변수를 선언 할 수 있다.

열거타입 변수;
Week today;

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

today = Week.MONDAY;

 

 

열거 타입 선언

  • 열거 타입 이름을 정하고 해당 이름으로 소스 파일(.java)을 생성한다.
  • 열거 타입 이름은 관례적으로 첫 글자는 대문자로 나머진 소문자로, 단어가 복합 되있는 경우 카멜 방법으로 표기한다.
  • 열거 타입 선언
public enum 열거타입이름 { ... }

//열거 상수 선언
public enum Week{
	MONDAY, 
    	TUESDAY,
   	WEDNESDAY,
    	THURSDAY,
    	FRIDAY,
    	SATURDAY,
    	SUNDAY
}

 

열거 상수는 열거 객체로 생성된다.

  • 열거 타입 변수 Week의 경우 Mon~Sun까지 열거 상수는 총 7개의 Week객체로 생성된다.
  • 메소드 영역에 생성된 열거 상수가 해당 Week객체를 각각 참조한다.

혼공자 유툽 참고

 

 

 

열거 상수 저장

열거타입 변수 = 열거타입.열거상수;

Week today = Week.MONDAY;
today == Week.MONDAY; //true
Week Birthday = null;
  • 열거 타입 변수 today는 스택 영역에 생성된다.
  • today에 저장되는 값은 Week.MONDAY 열거 상수가 참조하는 객체의 번지 이다.
  • 열거상수 week.MONDAY 와 today 변수는 서로 같은 Week 객체를 참조하게 된다.

혼공자 유툽 참고

  • today변수아 Week.MONDAY 상수의 == 결과는 true가 된다.

 

 

 

 

※용어 정리

  • 열거 타입: 열거 타입은 몇가지로 제한도니 상수를 가지는 타입 이다.

 

 

본 내용은 #혼자공부하는자바 책을 참고해 공부하려 작성했습니다.
728x90
반응형

'Programing > JAVA (& 혼공자Java)' 카테고리의 다른 글

자바(Java) - 객체 지향 프로그래밍2  (0) 2020.09.28
자바(Java) - 객체 지향 프로그래밍1  (0) 2020.09.23
자바(Java) - 배열3  (0) 2020.09.22
자바(Java) - 배열2  (0) 2020.09.22
자바(Java) - 배열1  (0) 2020.09.21

댓글