본문 바로가기

Java/Java_ enums (열거형)

Java_enums(열거형)

반응형

열거형 enums

열거자 != 열거형 

- 관련된 상수를 편하게 선언하기 위한 것으로 여러 상수를 정의할 때 사용하면 좋다.

- ' 타입에 안전한 열거형 ' 이라서 실제 값이 같더라도 타입이 다르면 컴파일 에러 발생

- 상수 값이 바뀌면 해당 상수를 참조하는 모든 소스를 다시 컴파일 해야 한다.

   (기존소스는 컴파일 하지 X 된다.)

- 열거형 상수간 비교는 '==' 를 사용할 수 있다.

- ' , ' , 비교연산자는 사용할 수 없고 compareTo()는 사용이 가능 

- compareTo()는 두 수를 비교하는 것이고 왼쪽이 크면 양수 , 오른쪽으크면 음수 , 같으면 0을 반환

 


 
 [열거형 선언 형식]
 enum 열거형이름  {상수명1, 상수명2 ,,,}

열거형에 정의된 상수 사용 방법  =  '열거형.상수명'  (클래스의 static 변수를 참조하는 것과 동일)

 

 

 

java.lang.Enum 

 - 모든 열거형의 조상   

 - values()는 열거형의 모든 사우를 배열에 담아 반환

 - values() 는 모든 열거형이 가지고 있는 것으로 자동으로 컴파일러가 추가

 - ordinal()은 모든 열거형 조상인 java.lang.Enum 클래스에 정의

 - 열거형 상수가 정의된 순서는 0부터 시작한 수를 정수로 반환 

 

 

 

**Enum 클래스에 정의된 메서드

Enum 클래스에 정의된 메서드

이 외에도 values() 처럼 자동적으로 컴파일러가 추가해주는 메서드가 하나가 있다.

* 열거형 상수의 이름으로 문자열 상수에 대한 참조를 얻을 수 있는 메서드 

  - static E values()

  - static E valuesOf(String name)

 

 

열거형에 멤버추가 

- enum Diection { AAA(2), BBB(5), CCC(2), DDD(-4), EEE(3) ; }

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

  (주의) 열거형 상수를 모두 정의한 다음에 다른 멤버들을 추가 해야한다.

반응형