📌 열거형 (Enum)

Enum은 열거형이라고 불리며, 서로 연관된 상수들의 집합을 의미 한다. 프로젝트를 진행하면서 회원등급에대한 클래스 생성시 Grade라는 이름의 클래스로 나열을 하는 상황에서 Enum이 사용되었다. Enum에 대한 정리를 다시하면서 꺼내봐야겠다!

✏️ Enum의 장점

  • 1️⃣ 코드가 단순해지고 가독성이 좋다.
  • 2️⃣ 상수값들의 타입 안정성이 보장된다.
  • 3️⃣ 키워드 enum을 사용함으로써 구현의 의도가 열거임을 분명하게 알 수 있다.
  • 4️⃣ enum class를 사용해 새로운 상수들의 타입을 정의함으로써 정의한 타입이외의 타입을 가진 데이터값을 컴파일시 체크한다.


enum grade {
	CUSTOMER, ADMIN, VIP, VVIP
}


  • enum을 사용해서 4개의 등급으로 회원구분 등급을 구성했다
  • 열거형으로 선언된 순서에 따라 0부터 인덱스 값을 가진다. 순차적으로 증가한다.
  • enum 열거형으로 지정된 상수들은 모두 대문자로 선언한다.

enum1


✏️  Enum 메소드

static 메소드

  • valueOf(String arg) : String 값을 enum에서 가져옴, 값이 없으면 예외발생
  • valueOf(Class class, String arg) : 넘겨받은 class에서 String 찾아, enum에 가져옴.
  • values() : enum의 요소들을 순서대로 enum 타입의 배열로 리턴한다.

non-static 메소드

  • name() : 호출된 값의 이름을 String으로 리턴
  • ordinal() : 해당 값이 enum에 정의된 순서를 리턴(인덱스값 리턴이라고 생각하면댐)
  • compareTo(E o) : enum과 지정된 객체의 순서를 비교, 지정된 객체보다 작은 경우 음의 정수, 동일하면 0, 크면 양의정수 리턴한다. -equals(Object other) : 지정된 객체가 enum 정수와 같은 경우, true 를 return 함


  • 일반 String 문자열과 Enum 비교할때 enum상수에 .toString()을 추가하면서 == 을 사용해서 비교해도 가능한것을 테스트했는데 성공했다.

enum2


👉 참조 : 블로그, 블로그


🌜 개인 공부 기록용 블로그입니다. 오류나 틀린 부분이 있을 경우 언제든지 댓글 혹은 메일로 지적해주시면 감사하겠습니다! 😄

개인메모

태그:

카테고리:

업데이트: