Java의 enum 클래스는 서로 연관된 상수들의 집합을 정의하는 데 사용되는 특별한 유형의 클래스입니다. enum은 "열거형(enumeration)"의 약어로, 상수를 표현하고 관리하는데 편리한 방법을 제공합니다. Java 5부터 enum 클래스가 도입되었으며, 코드를 더 안전하고 가독성 있게 만들어줍니다.
enum 클래스를 정의하는 방법은 간단합니다. 예를 들어, 커피의 사이즈를 나타내는 enum을 만들어보겠습니다:
public enum CoffeeSize {
SMALL,
MEDIUM,
LARGE
}
위 코드에서 CoffeeSize는 enum 클래스의 이름이며, SMALL, MEDIUM, LARGE는 해당 enum의 상수들입니다. enum의 상수들은 자동으로 public static final로 선언되어 있으며, 대문자로 작성하는 것이 관례입니다.
enum을 사용하는 이유:
가독성: enum을 사용하면 코드가 더 가독성 있고 이해하기 쉽습니다. 코드의 의도를 명확하게 표현할 수 있습니다.
안정성: enum을 사용하면 컴파일러가 상수의 타입 검사를 수행하여 타입 안정성을 보장합니다. 잘못된 타입의 값을 사용하려고 하면 컴파일 오류가 발생합니다.
편의성: enum을 사용하면 IDE에서 자동 완성 기능을 사용할 수 있어서 상수를 쉽게 찾을 수 있습니다.
enum 사용 예제:
public class Coffee {
private String name;
private CoffeeSize size;
public Coffee(String name, CoffeeSize size) {
this.name = name;
this.size = size;
}
public String getName() {
return name;
}
public CoffeeSize getSize() {
return size;
}
}
public class Main {
public static void main(String[] args) {
Coffee coffee1 = new Coffee("Cappuccino", CoffeeSize.MEDIUM);
Coffee coffee2 = new Coffee("Espresso", CoffeeSize.SMALL);
System.out.println(coffee1.getName() + " - " + coffee1.getSize());
System.out.println(coffee2.getName() + " - " + coffee2.getSize());
}
}
출력 결과:
Cappuccino - MEDIUM
Espresso - SMALL
enum 클래스를 사용하면 코드의 가독성과 안정성을 향상시킬 수 있으며, 관련된 상수들을 쉽게 관리할 수 있습니다.
enum 상수의 커스텀 데이터
커피의 사이즈를 나타내는 enum을 확장하여 각 사이즈에 해당하는 용량 값을 추가해보겠습니다:
public enum CoffeeSize {
SMALL(355),
MEDIUM(473),
LARGE(591);
private final int milliliters;
CoffeeSize(int milliliters) {
this.milliliters = milliliters;
}
public int getMilliliters() {
return milliliters;
}
}
위 코드에서 CoffeeSize enum은 세 개의 상수(SMALL, MEDIUM, LARGE)를 가지고 있습니다. 각 상수 뒤에 숫자를 지정하여 해당 사이즈의 커피의 용량을 나타냅니다.
이렇게 enum 상수에 커스텀 데이터를 추가함으로써, 각 상수가 특정 값을 가질 수 있습니다. 예제에서는 milliliters라는 변수를 사용하여 각 상수의 용량을 저장하고, getMilliliters() 메서드를 통해 해당 값을 가져올 수 있도록 하였습니다.
이제 enum 변수를 사용할 때 해당 상수의 값을 가져오는 예제를 살펴보겠습니다:
public class Main {
public static void main(String[] args) {
CoffeeSize coffeeSize = CoffeeSize.SMALL;
System.out.println("Size: " + coffeeSize.name());
System.out.println("Milliliters: " + coffeeSize.getMilliliters());
System.out.println(coffeeSize);
}
}
출력 결과:
Size: SMALL
Milliliters: 355
SMALL
이렇게 enum 변수를 선언하고 사용할 때, 커스텀 데이터로 지정한 값을 이용하여 각 enum 상수에 대한 추가 정보를 활용할 수 있습니다.
'자습' 카테고리의 다른 글
[JavaScript] 데이터 프로퍼티 vs 접근자 프로퍼티 (0) | 2023.07.24 |
---|---|
[JavaScript] 내장 객체(Built-in Objects) vs 사용자 정의 속성(Custom Properties) (0) | 2023.07.24 |
[JavaScript] console.log 객체 정보 (0) | 2023.07.24 |
콜백함수 (0) | 2023.03.26 |
속성(attribute)과 프로퍼티(property) (0) | 2023.03.13 |