Programming Language/Java

[JAVA] 열거상수, 열거 타입변수, 객체 ?

BS Kwak 2020. 10. 10. 23:01

>>1. 열거타입이란?

bskwak.tistory.com/165

 

[JAVA] 열거 (enumeration)타입이란?

열거(enumeration)타입이란? 한정된 값만을 갖는 데이터 타입 예를 들면 (계절 : 봄,여름,가을,겨울) (요일 : 월,화,수,목,금,토,일) 몇 개의 열거 상수(enumeration constant) 중에서 하나의 상수를 저장하는

bskwak.tistory.com

 

열거타입 변수 선언 

열거타입변수;
Week today;
Week reservationDay;

 

열거타입변수에 열거 상수 저장

열거타입변수 = 열거타입.열거상수;
Week today = Week.SUNDAY;
Week reservationDay = null;	//열거 타입도 참조 타입이기 때문에 null 저장 가능

 

열거상수는 객체 ? 

yes! 참조타입 변수는 객체를 참조하는 변수이고, 열거 타입도 참조 타입이기 때문에 객체

ex) 열거 타입 Week의 경우, MONDAY~SUNDAY까지의 열거 상수는 7개의 Week객체로 생성

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

 

today == Week.SUNDAY  true?

Week today = Week.SUNDAY;

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

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

변수 today 와 열거 상수 Week.SUNDAY : 서로 같은 Week 객체 참조

따라서 today == Week.SUNDAY yes!

 

week1 == week2  true?

Week week1 = Week.SATURDAY;
Week week2 = Week.SATURDAY;
week1 == week2; //true

week1과 week2 모두 Week.SATURDAY 상수와 같이 동일한 Week 객체를 참조하기 때문에 

따라서 week1 == week2 yes!

 

>>3. 열거 객체의 메소드

bskwak.tistory.com/168

 

[JAVA] 열거 객체의 메소드

열거 객체의 메소드 메소드 : java.lang.Enum 클래스에 선언된 메소드 - 모든 열거 타입은 컴파일 시에 Enum 클래스를 상속하게 되어있음 리턴타입 메소드(매개 변수) 설명 String name( ) 열거 객체의 문��

bskwak.tistory.com