반응형
java.lang 패키지
- java.lang 패키지는 자바에서 가장 기본적인 동작을 수행하는 클래스들의 집합이다. 따라서 자바에서는 java.lang 패키지의 클래스들은 import 문을 사용하지 않아도 클래스 이름만으로 바로 사용할 수 있다.
열거체(enumeration type)
- JDK 1.5 이전의 자바에서는 열거체를 사용할 수 없었지만 JDK 1.5부터는 C언어의 열거체보다 더욱 향상된 성능의 열거체를 정의한 Enum 클래스를 사용할 수 있게 되었다.
열거체 장점
- 열거체를 비교할 때 실제 값뿐만 아니라 타입까지도 체크한다.
- 열거체의 상숫값이 재정의되더라도 다시 컴파일할 필요가 없다.
열거체의 정의 및 사용
- 자바에서는 enum 키워드를 사용하여 열거체를 정의하고, .을 이용해 사용한다.
enum 열거체이름 { 상수1이름, 상수2이름, ... } // 열거체 정의
열거체이름.상수이름 // 열거체 사용
enum Rainbow { RED, ORANGE, YELLOW, GREEN, BLUE, INDIGO, VIOLET }
Rainbow.RED
열거체의 상숫값 정의 및 추가
- 정의된 열거체의 첫 번째 상숫값은 0부터 설정되며, 그다음은 바로 앞의 상숫값보다 1만큼 증가되며 설정된다.
- 불규칙한 값을 상숫값으로 설정하고 싶으면 상수의 이름 옆에 괄호(())을 추가하고, 그 안에 원하는 상숫값을 명시할 수 있다. 하지만 이때에는 불규칙한 특정 값을 저장할 수 있는 인스턴스 변수와 생성자를 별도로 추가해야만 한다.
enum Rainbow {
RED(3), ORANGE(10), YELLOW(21), GREEN(5), BLUE(1), INDIGO(-1), VIOLET(-11);
private final int value;
Rainbow(int value) { this.value = value; }
public int getValue() { return value; }
}
java.lang.Enum 클래스
- Enum 클래스는 모든 자바 열거체의 공통된 조상 클래스다.
values() 메소드
- values() 메소드는 해당 열거체의 모든 상수를 저장한 배열을 생성하여 반환한다.
- values() 메소드는 자바의 모든 열거체에 컴파일러가 자동으로 추가해 주는 메소드다.
enum Rainbow { RED, ORANGE, YELLOW, GREEN, BLUE, INDIGO, VIOLET }
public class Enum01 {
public static void main(String[] args) {
Rainbow[] arr = Rainbow.values();
for (Rainbow rb : arr) {
System.out.println(rb);
}
}
}
>> RED
>> ORANGE
>> YELLOW
>> GREEN
>> BLUE
>> INDIGO
>> VIOLET
valueOf() 메소드
- valueOf() 메소드는 전달된 문자열과 일치하는 해당 열거체의 상수를 반환한다.
enum Rainbow { RED, ORANGE, YELLOW, GREEN, BLUE, INDIGO, VIOLET }
public class Enum02 {
public static void main(String[] args) {
Rainbow rb = Rainbow.valueOf("GREEN");
System.out.println(rb);
}
}
>> GREEN
ordinal() 메소드
- ordinal() 메소드는 해당 열거체 상수가 열거체 정의에서 정의된 순서(0부터 시작)를 반환한다.
enum Rainbow { RED, ORANGE, YELLOW, GREEN, BLUE, INDIGO, VIOLET }
public class Enum03 {
public static void main(String[] args) {
int idx = Rainbow.YELLOW.ordinal();
System.out.println(idx);
}
>> 2
Enum 메소드들
Reference
반응형
'Language > Java' 카테고리의 다른 글
[Java] 자바 API 클래스 - Calendar 클래스 (0) | 2024.04.13 |
---|---|
[Java] 자바 API 클래스 - Arrays 클래스 (0) | 2024.04.13 |
[Java] 자바 API 클래스 - Wrapper 클래스 (0) | 2024.04.13 |
[Java] 자바 API 클래스 - Math 클래스 (0) | 2024.04.11 |
[Java] 자바 API 클래스 - StringBuffer 클래스 (0) | 2024.04.11 |