열거 타입 (Enum)

박주현·2022년 10월 14일
0

국비 공부

목록 보기
13/44

열거 타입의 필요성

  • 각 숫자에 대하여 부여된 의미를 개발자가 숙지 => 일이나 사건에 대한 경우의 수가 많다면 개발자 관점에서 불편.
  • 부여되지 않은 의미 없는 숫자 => 컴파일러는 알 수 없다.
  • 출력 값이 의미 없는 숫자로 표현
  • 제한된 시간에 대하여 숫자 대신에 상수를 정의해서 부여
    숫자에 부여된 의미를 개발자가 알 수 있지만, 여전히 나머지 문제가 미결

자바 5부터 열거 타입을 제공

public enum Direction {
	EAST, WEST, SOUTH, NORTH

}
public enum Gender {
	MALE, FEMALE

}

		Gender gender = Gender.FEMALE;
		Direction direction = Direction.SOUTH;

		if (gender == Gender.FEMALE) {
        	// MALE은 병역의 의무가 있다.
			System.out.println(Gender.MALE + "은 병역의 의무가 있다.");
		} else {
			System.out.println(Gender.FEMALE + "은 병역의 의무가 없다.");
		}

		if (direction == Direction.SOUTH) {
        	// SOUTH는 누구?
			System.out.println(Direction.SOUTH + "는 누구?");
		}

이렇게도 쓸수 있다.

public enum Gender {
	MALE("남성"), FEMALE("여성");

	private String s;

	Gender(String s) {
		this.s = s;
	}

	public String toString() {
		return s;

	}

}

	public static void main(String[] args) {
		Gender gender = Gender.FEMALE;
		Direction direction = Direction.SOUTH;

		if (gender == Gender.FEMALE) {
        	// 남성은 병역의 의무가 있다.
			System.out.println(Gender.MALE + "은 병역의 의무가 있다.");
		} else {
			System.out.println(Gender.FEMALE + "은 병역의 의무가 없다.");
		}

		if (direction == Direction.SOUTH) {
			System.out.println(Direction.SOUTH + "는 누구?");
		}

	}

0개의 댓글