본문 바로가기
JAVA/★객체지향

상수/ enum의 문법

by SEOKIHOUSE 2023. 3. 14.

1) enum은 열거형(enumerated type) ----> 서로 연관된 상수들의 집합

-자주사용하는 패턴, 자바에서 문법적으로 지원해줌(간략하게)

  • 1) 코드의 단순
  • 2)인스턴스 생성과 상속을 방지
  • 3)키워드 enum을 사용하기 때문에 구현의 의도가 열거임을 분명하게 나타냄
  • 특성: 열거형은 연관된 값들을 저장한다. 또 그 값들이 변경되지 않도록 보장한다. 뿐만 아니라 열거형 자체가 클래스이기 때문에 열거형 내부에 생성자, 필드, 메소드를 가질 수 있어서 단순히 상수가 아니라 더 많은 역할이 가능!

​switch문의 레이블은 조건으로 넘어온 데이터 타입을 fruit라는걸 알고 있어서 각각 레이블에선 enum의 데이터타입을 생략하고 상수만 입력할 수있다.


 

2) 열거형의 활용

enum은 사실상 클래스임

----> 필드와 메소드가 들어갈 수 있따

--->상수하나하나 만들때마다 new fruit인스턴스화 하는 과정이 실행되고 인스턴스화 하면 생성자가 호출되는데 생성자를 정의(fruit())했기 때문에

상수값이 세팅될때마다(apple, peach...) fruit가 인스턴스화되면서 그 인스턴스를 만들기위한 생성자가 호출이 되는거임 call constructor 3번호출되네 총

이넘이 어떻게 동작되는지 알아보기 위한것


색깔 출력(1)


색깔출력 2 (다른방법)


열거형이 클래스방식과 다른것?

1) 무슨 데이터가 있는지 몰라도 그 안에 데이터를 하나씩 꺼내서 처리가 가능 (values사용)

values() 메소드는 해당 열거체의 모든 상수를 저장한 배열을 생성하여 반환

https://www.nextree.co.kr/p11686/ 여기사이트 설명 잘되어있다 헷갈리면 보자