열거형

Shaun·2021년 9월 11일
1

JAVA

목록 보기
17/30

열거형은 잘 쓰지않아 가끔씩 나올때마다 까먹어서 찾아본다. 이번기회에 기록하고 모르면 이걸 찾아 쓰자

열거형

  • 서로 관련된 상수를 편리하게 선언하기 위한 것으로 여러 상수를 정의할떄 사용하면 유요하다.

  • 자바의 열거형은 타입에 '안전한 열거형' 이라서 실제 값이 같아도 타입이 다르면 컴파일시 에러가 발생한다.

  • 상수의 값이 바뀌면 해당 상수를 참조하는 모든 소스를 다시 컴파일해야하지만 열거형 상수를 사용하면 기존의 소스를 다시 컴파일 하지 않아도 된다.

열거형 정의와 사용

enum 열거형이름 {상수명1, 상수명2...}

사용방법

열거형이름.상수명

특징

  1. < > 와같은 비교연산자 사용불가 / compareTo() 사용가능

  2. ==를 사용할수 있다.

  3. switch문의 조건식 사용가능 // case문에 열거형이름은 적지 않고 상수의 이름만 적어야한다

모든 열거형 조상- Enum

  • String name() = 열거형 상수이름을 문자열로 반환

  • int ordinal() = 열거형 상수가 정의된 순서를 반환(0부터시작)

  • valueOf(Class<T.> enumType, Stinrg name) = 지정된 열거형에 name과 일치하는 열거형 상수 반환

열거형에 멤버 추가하기

  • ordinal() 이 열거형 상수가 정의된 순서를 반환하지만, 이값을 열거형 상수의 값으로 사용하지 않는것이 좋다. 이값은 내부적인 용도로만 사용하기 위한 것이기 때문이다.

  • 열거형 상수의 값이 불연속적인 경우에는 열거형 상수의 이름 앞에 원하는 값을 괄호()에 적어주면 된다.

enum Direction {East(1), South(5), West(-1),North(10)}

  • 지정된 값을 저장할 수 있는 인스턴스 변수생성자를 추가 해야한다.

enum Direction{
East(1), South(5), West(-1),North(10) ;

private final int value; // 정수를 저장할인스턴스 변수

Direction (int value) {this.value= value;} //생성자 추가

public int getValue(){retrun value;}

}

  • 열거형 생성자는 제어자가 묵시적으로 private 이다
  • 하나의 열거형 상수에 여러 값을 지정할수도 있다. 다만 그에맞는 인스턴스 변수와 생성자 등을 추가해야한다

East(1,">"), South(5,"V"), West(-1,"<"),North(10,"^") ;

enum

profile
호주쉐프에서 개발자까지..

0개의 댓글