개발소설

[JAVA] 열거형(enum) 본문

자바

[JAVA] 열거형(enum)

ChaeHing 2023. 3. 7. 17:26

열거형

  • 서로 연관된 상수들의 집합
  • 몇가지로 한정된 변하지 않는 데이터를 다룬다.
  • 여러 상수들을 보다 편리하게 선언하고 관리할 수 있게하며, 상수명의 중복을 피하고, 타입에 대한 안정성을 보장

선언

// 관례적으로 대문자 사용
enum Position { ATTACKER, MIDFIELDER, DEFENDER, GOALKEEPER };
// 정수값          0           1          2         3           할당
  • 관례적으로 대문자 사용
  • 정수값이 자동으로 0부터 할당

switch문 사용

Position position = Position.MIDFIELDER;

switch(position){
    case ATTACKER :
        System.out.println("공격수 입니다.");
        break;
    case MIDFIELDER:
        System.out.println("미드필더 입니다.");
        break;
    case DEFENDER :
        System.out.println("수비수 입니다.");
    case GOALKEEPER:
        System.out.println("골키퍼 입니다.");
    default:
        System.out.println("벤치 선수 입니다.");
        
/*
미드필더 입니다.
*/

메소드 사용

Position[] allPosition = Position.values(); // 모든 열거 객체를 배열로 저장
System.out.println(Arrays.toString(allPosition)); // [ATTACKER, MIDFIELDER, DEFENDER, GOALKEEPER]

Position position = Position.DEFENDER; // 참조변수의 열거 객체 DEFENDER 저장
System.out.println(position.name()); // DEFENDER, 열거 객체 문자열 리턴
System.out.println(position.ordinal()); // 2, 열거 객체 순번(index) 리턴

Position position1 = Position.ATTACKER;
System.out.println(position.compareTo(position1)); // 2, 매개값과 순번(index)차이 리턴

System.out.println(Position.valueOf("ATTACKER")); // ATTACKER, 주어진 문자열의 열거 객체 리턴

/*
[ATTACKER, MIDFIELDER, DEFENDER, GOALKEEPER]
DEFENDER
2
2
ATTACKER
*/
리턴 타입메소드(매개변수) 설명
String name() 열거 객체가 가지고 있는 문자열을 리턴하며, 리턴되는 문자열은 열거타입을 정의할 때 사용한 상수 이름과 동일합니다.
int ordinal() 열거 객체의 순번(0부터 시작)을 리턴합니다.
int compareTo(비교값) 주어진 매개값과 비교해서 순번 차이를 리턴합니다.
열거 타입 valueOf(String name) 주어진 문자열의 열거 객체를 리턴합니다.
열거 배열 values() 모든 열거 객체들을 배열로 리턴합니다.

 

'자바' 카테고리의 다른 글

[JAVA] 람다 (Lambda)  (0) 2023.03.08
[JAVA] 애너테이션 (Annotation)  (0) 2023.03.08
[JAVA] 컬렉션 프레임 워크 (Collection Framework)  (0) 2023.03.08
[JAVA] 예외 처리(Exception Handling)  (0) 2023.03.07
[JAVA] 제네릭 (Generic)  (0) 2023.03.07
Comments