Enum

yshjft·2022년 4월 2일
0

Java, OOP

목록 보기
3/27

Enum이란?

열거형이라고 불리며, 서로 연관된 상수들의 집합을 의미합니다.

왜 사용하냐?

  • 가독성이 좋아 진다
  • 컴파일시 타입 안정성이 보장된다.
    enum GALAXY{ 
        NOTE, // 상수명  
        TAB
    }
    만약 type이 NOTE로 설정되었는데 다른 값이 할당되면 바로 에러가 난다.

어떻게 사용하냐?

  • 기본
enum Day {
	MONDAY, TUESDAY, WENDNESDAY
}
  • 추가 속성 부여
public enum RoadSide {
	LEFT(“왼쪽”), RIGHT(“오른쪽”);
	
	private String korName;

	RoadSide(String korName) {
		this.korName = korName;
	}

	public String getKorName() {
		return korName;
	}
}

// 사용
RoadSide rs = RoadSide.LEFT
rs.getKorName();

위에서 확인할 수 있듯이 생성자가 있지만 열거형 객체 생성에 사용할 수 없다. 생성자의 접근 제어자가 묵시적으로 private이기 때문이다. enum 타입은 고정된 상수 집합으로서 런타임이 아닌 컴파일타임에 모든 값을 알고 있어야 하기에 동적으로 값을 설정해줄 수 없고 이에 따라 생성자가 private이여야 한다.

  • 추상 메서드 사용하기
public enum Transportation {
	BUS(100){ int fare(int dist) { return dist * BASIC_FARE}},
	TRAIN(150){ int fare(int dist) { return dist * BASIC_FARE}};

	private int BASIC_FARE;

	Transportation(int basicFare) {
		this.BASIC_FARE = basicFare;
	}

	public int getBasicAfre(){ return BASIC_FARE; }
	
	abstract int fare(int dist);
}

// 사용
Transportation.BUS.fare(100);
Transportation.TRAIN.fare(200);
  • static 메서드 사용하기
enum Type{
	ADD, SUB;
	public static int size(){ return values().length; }
}

// 사용 
Type.size();
profile
꾸준히 나아가자 🐢

0개의 댓글