[TIL] 항해99 Day 32

woonie·2022년 2월 10일
0

TIL

목록 보기
28/64
post-thumbnail

항해 32일차

Enum

Enum열거형이라고 말하며, 서로 연관있는 상수들의 집합이다.

필요한 상수들을 각 클래스에서 그 때 그 때 정해서 써도 되지만, 이렇게 한 클래스로 두면 여기저기 가져다 쓸 수 있어 편하다.

  1. 열거형을 정의하는 방법은 간단하다. 다음과 같이 괄호{ }안에 상수의 이름을 나열하기만 하면 된다.
enum 열거형이름 { 상수명1, 상수명2, ... }

이 열거형에 정의된 상수를 사용하는 방법은 ‘열거형이름.상수명’이다.

public class MyClass{

	// enum
	enum UserRole {
	    USER,
	    ADMIN
	}

	// 메인 메소드
	public static void main(String args[]) {
	  System.out.println(UserRole.USER);
	  System.out.println(UserRole.ADMIN);
	}
}

없는 값을 입력하면 에러가 나서 오타로 인한 실수를 방지하기도 좋다.

public class MyClass {

	// enum
	enum UserRole {
	    USER,
	    ADMIN
	}

	// 메인 메소드
	public static void main(String args[]) {
		System.out.println(UserRole.USEL); // USER를 USEL로 잘못 입력
	}
}

enum 클래스의 원소에 속성을 추가해줄 수도 있다.

  • enum에 final 멤버변수가 추가되기 때문에 이걸 포함한 생성자도 적어줘야 한다.
  • 이 때 enum의 생성자는 private이다.
    enum은 고정된 상수들의 집합으로 런타임이 아닌 컴파일 타임에 모든 값을 알고 있어야 한다.
    따라서 생성자의 접근제어자를 pirvate으로 설정해야만 한다.
    이렇게 되면 외부에서 접근 가능한 생성자가 없으므로 enum 타입은 실제적으로 final과 다름 없다.
  • 원소의 속성에 대한 Getter를 설정해주면 해당 원소의 속성값을 가져올 수 있다.
profile
동료들과 함께하는 개발의 중요성에 관심이 많습니다. 언제나 호기심을 갖고 꾸준히 노력하는 개발자로서 성장하고 있습니다.

0개의 댓글