Enum

2023. 3. 8. 15:14Java

Java에서 enum은 서로 연관된 상수들의 집합을 정의할 때 사용하는 데이터 타입입니다. enum을 사용하면 코드의 가독성을 높이고, 타입 안정성을 보장할 수 있습니다.

enum은 다음과 같이 선언합니다.

enum Weekday { MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY }​
 

위 코드에서 Weekday는 enum 타입의 이름이고, MONDAY, TUESDAY 등은 enum 상수입니다. enum 상수는 모두 대문자로 작성하며, 각 상수는 쉼표로 구분됩니다.

enum은 switch 문과 함께 사용할 때 매우 유용합니다. switch 문에서 enum 값을 비교할 때는 case 문으로 각 상수를 나열하면 됩니다.

enum Weekday { MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY }
Weekday today = Weekday.MONDAY; switch (today) {
	case MONDAY: System.out.println("Today is Monday.");
   		break; 
    case TUESDAY: System.out.println("Today is Tuesday.");
		break; 
    // ... 
    default: System.out.println("Invalid weekday.");
    break; 
}​

enum은 인스턴스 변수, 생성자, 메소드 등을 가질 수 있습니다. 예를 들어, 다음과 같이 enum에 메소드를 추가할 수 있습니다.

enum Weekday { 
    MONDAY("Monday"), 
    TUESDAY("Tuesday"), 
    WEDNESDAY("Wednesday"),
    THURSDAY("Thursday"), 
    FRIDAY("Friday"), 
    SATURDAY("Saturday"), 
    SUNDAY("Sunday");
	private final String name;
    private Weekday(String name) {
		this.name = name; 
    } 
    public String getName() {
    	return name; 
    } 
}

위 코드에서는 각 enum 상수에 대해 name이라는 인스턴스 변수와 getName()이라는 메소드를 추가했습니다.

enum은 상수를 정의하는 것 외에도 여러 가지 용도로 사용될 수 있으며, Java에서는 자주 사용되는 데이터 타입 중 하나입니다.

'Java' 카테고리의 다른 글

String과 StringBuffer의 차이  (0) 2024.09.27
Lambda Expression  (0) 2023.03.08
Final  (0) 2023.03.08
Generic  (0) 2023.03.08
Optional  (0) 2023.03.08