[22/04/06]자바 enum

https://velog.io/@kyle/자바-Enum-기본-및-활용

👶 enum이란?

: Enumeration의 앞 글자로 열거라는 의미

관련이 있는 상수들의 집합입니다.
자바에서는 final로 String과 같은 문자열이나 숫자들을 나타내는 기본 자료형의 값을 고정할 수 있습니다.
이렇게 고정된 값을 상수라고 합니다. 영어로는 constant입니다.
어떤 클래스가 상수만으로 작성되어 있으면 반드시 class로 선언할 필요는 없습니다.
이럴 때 class로 선언된 부분에 enum이라고 선언하면 이 객체는 상수의 집합이다. 라는 것을 명시적으로 나타냅니다.

기존에는 인터페이스나 클래스 내에서 상수를 선언함으로써 상수를 관리 하였는데 클래스 내에서 선언하는 부분은 네이밍이 겹칠 수 있고 불 필요하게 상수가 많아지는 단점이 있다.

인터페이스로 관리하는 경우 이런 부분은 줄어들지만 여전히 IDE의 지원을 적극적으로 받을 수 없고 타입 안정성이 떨어지는 단점을 가지고 있었다. 이를 보완하며 나온 것이 Enum

enum의 사용

 public enum  Rank {
    	THREE(3, 4_000),
    	FOUR(4, 10_000),
    	FIVE(5, 30_000);
    
    	private final int match;
    	private final int money;
    	private int count;
    
    	Rank(int match, int money) {  // Default 생성자는 private 으로 설정되어 있음.
    		this.match = match;
    		this.money = money;
    	}

모든 enum들은 내부적으로 java.lang.enum 클래스에 의해 상속된다. 자바는 다중 상속을 지원하지 않기 때문에 Enum은 다른 클래스를 상속받을 수 없다. 참고로 toString() 메서드는 상수의 이름을 리턴하도록 구현되어 있다.

좋은 웹페이지 즐겨찾기