본문 바로가기

[Kotlin&Spring] 5기 내일배움캠프

[Kotlin&Spring] 5기 Enum 열거형에 대해

자바의 Enum 은 enumeration(열거)로부터 왔다

즉 열거형 상수들의 집합이라고 볼 수 있다

참조타입이기때문에 왜 상수인지 궁금할 수 도 있다

상수는 변하지 않는 값으로, 흔히 생각하지 않는 숫자 개념과는 다르고, 변수의 반대 개념으로 생각하는 것이 좋다

선언시 class와 interface 처럼 enum 키워드를 이용 .java 파일로 선언할 수 있다

enum은 데이터 타입을 생략하고 상수를 의미하는 public static final 키워드도 생략할 수 있다

정말 간단하게 변수명으로 선언할 수 있다

enum Operator {
	PLUS, MINUS, MULTIPLY, DIVIDE;
}

 

enum의 장점

1. enum은 관련된 상수값들을 하나로 묶어 사용할 수 있다

2. enum을 사용하면 컴파일 단계에서 잘못된 값의 사용을 방지할 수 있다

3. enum은 위와 같이 클래스로 구현되기 때문에 메서드나 생성자를 추가할 수 있다

 

위의 에시에 생성자와 메서드를 추가한 모습이다

enum Operator{
	PLUS("+"),
    MINUS("-"),
    MULTIPLY("*"),
    DIVIDE("/");
    
    private String symbol;
    
    Operator(String symbol) {
    	this.symbol = symbol;
    }
    
    public String getSymbol() {
    	return symbol;
    }

}

 

또한 enum 내부에 추상메소드를 선언하고 재정의함으로써 하나의 값에 여러 기능을 넣을 수 있는데, 다형성을 구현할 뿐 아니라 코드 수정, 리팩토링에 있어서도 좋은 코드를 만들 수 있다

 

아래 추상 메소드를 재정의, 구현한 모습이다.

 

오늘도 많은 것을 배우게 되어서 기쁘다

이번주도 시작이 좋다 화이팅~!!