[Spring_Boot] enum(열거 타입)

최현석·2022년 11월 29일
0

Spring_Boot

목록 보기
10/31
post-thumbnail

🧩 enum

  • Enumeration
  • 데이터 중에는 요일(월,화,수,목,금,토,일), 계절(봄,여름,가을,겨울) 등과
    같이 몇 가지 한정된 값을 갖는 경우가 있다.
  • 열거 타입에 들어가는 값(월, 화, ... )들을 열거 상수라고한다.
  • 자바 class대신 enum을 적어준다.
  • 열거 상수를 적을때는 첫 글자대문자로 작성.
  • 순서에 따라 0부터 index를 가지게 되며, 1씩 증가
  • enum 열거형으로 지정할 상수들은 전부 대문자로 선언
  • 열거 상수들을 선언한 뒤에는 세미콜론(;)을 작성하지 않고,
    상수("문자열")등 상수와 다른 값을 연결하는 경우에는 세미콜론(;) 작성
  • 코드가 단순해 지며 가독성이 좋아짐

1) 열거 상수를 다른 값과 연결하기

  • 상수("연결문자"), 상수(값)과 같은 형태로 작성
  • 상수들을 열거한 끝에 ; 작성
  • 해당 자료형에 맞는 private 생성자 필요
  • 연결한 값을 반환해줄 getter 메서드 필요

🧩enum 실습


💊실습 1)

week

public enum Week {
	// ENUM에서는 대문자 사용, ; 사용 x
	MONDAY, TUESDAY, WEDNESDAY,THURSDAY,FRIDAY,SATURDAY,SUNDAY;
	
	// 일반 메서드를 사용하면 ; 사용
	public void dayInfo() {
		System.out.println("dayInfo enum");
	}
}

Main01

public class Main01 {
	public static void main(String[] args) {
		Week today = Week.FRIDAY;
		System.out.println(today);
		
		Week.MONDAY.dayInfo();
		Week.TUESDAY.dayInfo();
	}
}


💊실습 2)

Season

public enum Season {
	SPRING, SUMMER, FALL, WINTER
}

Main02

public class Main02 {

	public static void main(String[] args) {
		Season season = Season.SPRING;
		
		// name() : 열거 객체의 문자열 리턴
		String name = season.name();
		System.out.println(name);
		System.out.println("-----");
		
		// ordinal() : 열거 객체가 몇 번째인지를 리턴
		int ordinal = season.ordinal();
		System.out.println(ordinal);
		System.out.println("-----");

		// values() : 열거 타입의 모든 열거 객체들을 배열로 만들어 리턴
		Season[] season1 = Season.values();
		// 배열로 받아온 값을 하나씩 출력
		for( Season s : season1) {
			System.out.println(s);
		}
	}
}


💊실습 3)

Type

public enum Type {
	// static final String WALKING = "워킹화";
	WALKING("워킹화"),
	RUNNING("러닝화"),
	TRACKING("트래킹화"),
	HIKING("등산화");
	
	// 약속된 방식
	final private String name;
	
	// enum에서 생성자와 같은 개념
	private Type(String name) {
		this.name =name;
	}
	
	// 문자를 받아오는 함수
	public String getName() {
		return name;
	}
}

Main03


public class Main03 {

	public static void main(String[] args) {

		for(Type type : Type.values()) {
			System.out.println(type.getName());
		}
	}

}

0개의 댓글