본문 바로가기
Java

[ch05 참조타입] 열거 타입

by 김차루 2022. 7. 11.

 

 

📆 2022년 07월 10일

⏰ 23시 00분 ~ 22시 00분

✍ 혼자 공부하는 자바(신용권) 

 

 


 

 

1. 열거 타입

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

 

- 다음은 월, 화, 수, 목, 금, 토, 일 7개의 값을 갖는 요일 데이터의 열거 타입 week

public enum Week{   //Week:열거 타입 이름
	MONDAY,   //여기서부터//
    TUESDAY,
    WEDNESDAY,
    THURSDAY,  //열거상수
    FRIDAY,
    SATURDAY,
    SUNDAY    //여기까지//
}

- 변수 선언

Week today;

- today 변수에 저장할 수 있는 것은 week에 선언된 7개의 열거 상수 중 하나

today = Week.FRIDAY;

 

2. 열거 타입 선언

- 먼저 열거 타입의 이름을 정하고 해당 이름으로 소스 파일을 생성

 

1) 열거 타입 이름

- 첫 글자를 대문자로 하고 나머지는 소문자로 구성

- 여러 단어로 구성된 이름이라면 각 단어의 첫 글자는 대문자

 

2) 소스 파일

Week.java
MemberGrade.java
ProductKind.java

- 열거 타입을 선언하기 위한 키워드 : public enum

- 반드시 소문자로 작성

- 열거 타입 이름은 소스 파일 이름과 대소문자가 모두 일치

 

3) 열거 상수

- 열거 타입의 값

- 모두 대문자로 작성

- 여러 단어로 구성될 경우에는 단어 사이를 밑줄(_)로 연결

public enum LoginResult{LOGIN_SUCCESS, LOGIN_FAILED}

 

3. 열거 타입 변수

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

Week today;
Week reservationDay;

- 열거 타입 변수를 선언했다면 다음과 같이 열거 상수를 저장할 수 있음

- 열거 상수는 단독으로 사용할 수 없고 반드시 '열거 타입.열거 상수' 형태로 사용

 

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

Week today = Week.SUNDAY;

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

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

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

- 그렇기 때문에

today == Week.SUNDAY; //true

 

- 열거 타입 Week를 이용하려면 날짜 정보가 필요

- Calendar 클래스 : 컴퓨터의 날짜 및 요일, 시간을 제공

- Calendar 변수를 선언하고 Calendar.getInstance() 메소드로 Calendar 객체를 얻음

Calendar now = Calendar.getInstance();

- Calendar 객체를 얻었다면 get() 메소드를 이용해서 연, 월, 일, 요일, 시간, 분, 초를 다음과 같이 얻을 수 있음

int year = now.get(Calendar.YEAR);
int month = now.get(Calendar.MONTH)+1;
etc...

 

 

 

'Java' 카테고리의 다른 글

[ch06 클래스] 생성자  (0) 2022.07.20
[ch06 클래스] 객체 지향 프로그래밍  (0) 2022.07.19
[ch04 조건문과 반복문]  (0) 2022.07.18
[ch05 참조타입] 배열  (0) 2022.07.11
[ch05 참조타입] 참조 타입과 참조 변수  (0) 2022.07.11