Back-end/Java Language

ENUM

prden 2021. 7. 30. 09:36

1.열거형이란?

관련 상수(열거형 상수는 객체임)들을 같이 묶어 놓은 것을 말한다. java의 열겨형은 값과 타입 둘다 체크함

 

2. 열거형 정의하는 방법 

enum 열거형 이름{ 상수명1, 상수명2, ...}

enum Direction {EAST, SOUTH, WEST, NORTH}


class Unit{
	int x, y;
    Direction dir ; //열거형을 인스턴스 변수로 선언
    
    void init(){
    	dir = Direction.EASE; //유닛의 방향을 EAST로 초기화(클래스의 static 변수를 참조하는 것과 동일)

열거형 상수 비교에 ==와 compareTo(비교연산자 사용 불가 대신 compareTo사용)사용가능 

compareTo 같으면 0, 왼쪽이 크면 양수, 오른쪽이 크면 음수

 

3. 열거형의 조상 Enum

잘 쓰이는 메서드

String name() : 열거형 상수의 이름을 문자열로 반환

int ordinal() : 열거형 상수가 정의된 순서를 반환

 

아래 두개는 컴파일러가 자동으로 추가 

values()

valueOf() 

 

4. switch후에 case문에 씀

 void move(){
 		switch(dir){
            case EAST: x++;
            	break;
            case WEST: x--;
            	break;
            case SOUTH: y++;
            	break;
            case NORTH: y--;
            	break;
      }
}

 

5. Enum은 왜써주는 거지?

상수의 값이 바뀌면 해당 상수를 참조하는 모든 소스를 다시 컴파일 해야하지만, 열거형 상수를 사용하면 기존 소스를 다시 컴파일 하지 않아도 된다. 

 

**https://techblog.woowahan.com/2527/추가 공부

'Back-end > Java Language' 카테고리의 다른 글

변수명 짓는 방법  (0) 2021.09.17
@SuppressWarnings  (0) 2021.09.08
람다식(Lamda expression)  (0) 2021.07.19
Scanner  (0) 2021.07.05
0. StringBuilder vs. StringBuffer  (0) 2021.07.04