| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | |||
| 5 | 6 | 7 | 8 | 9 | 10 | 11 |
| 12 | 13 | 14 | 15 | 16 | 17 | 18 |
| 19 | 20 | 21 | 22 | 23 | 24 | 25 |
| 26 | 27 | 28 | 29 | 30 |
- java #문법
- java
- html #css #부트스트랩 #웹사이트 #개발 #초보 #til #내일배움캠프 #스파르타코딩클럽
- sql #부트캠프 #내일배움캠프 #웹관리자 #도전 #학습
- sql #내일배움캠프 #스파르타코딩클럽
- Today
- Total
Hyeok의 웹 개발 블로그
<2025.03.12> ENUM, 동등성과 동일성 본문
▶ ENUM
- ENUM은 서로 연관된 상수들의 집합을 정의하는 특별한 데이터 타입
- 기존의 final static 상수를 사용하는 것보다 더 안전하고 가독성이 좋은 방법
▶ ENUM 의 특징
- ENUM은 상수들의 집합
- ENUM은 내부적으로 final class 처럼 동작
- ENUM은 객체처럼 필드와 메서드를 가진다.
- ENUM은 특정 상태를 표현하는 데 유용하다.

이렇게 정의된 Day ENUM은 요일을 표현하는 상수 그룹이다.
▶ ENUM도 객체
- 각 ENUM 값은 인스턴스
- ENUM 값마다 필드, 생성자, 매서드를 가질 수 있다.
- ENUM은 new 키워드로 생성할 수 없지만, 내부적으로 자동으로 생성되는 객체

- 여기서 CoffeSize.LARGE는 단순한 문자열이 아니라 객체
- LARGE.getM1() 처럼 ENUM 값에 메서드를 호출 할 수 있다.
- ENUM을 사용하면 final static int 보다 더 객체지향적인 방식으로 코드를 작성할 수 있다.
▶ ENUM은 다양한 관점의 상수
● ENUM을 단순한 상수로 사용하기

● ENUM에 값을 추가하여 의미 부여하기

● ENUM을 상태값으로 사용하기

- ENUM을 활용하면 특정한 상태를 명확하게 표현 가능
- OrderStatus를 사용하면 String을 비교하는 것보다 타입 안정성이 보장
▶ ENUM과 메서드
- EUNM은 단순한 상수의 모음이 아니라, 객체처럼 동작하는 클래스 (메서드를 가질 수 있음)

- ENUM 값마다 서로 다른 종작을 정의 할 수 있다.
- abstract 메서드를 선언하여 각 ENUM값이 구현하도록 만들 수 있다.
▶ ENUM과 인터페이스
- ENUM은 인터페이스도 구현 가능하다.

- ENUM이 인터페이스를 구현하면 다형성을 활용가능
- ENUM을 인터페이스 기반으로 설계하면 유지보수가 쉬워진다.
▶ 동등성
- "내용"이 같은 것이 동등성이다.

▶ 동일성
- "메모리 주소" 가 같은 것이 동일성이다.

'TIL > Java' 카테고리의 다른 글
| <2025.03.13> 키오스크 과제 Lv4 and Lv5 (0) | 2025.03.13 |
|---|---|
| <2025.03.11> 키오스크 과제 Lv 3 (0) | 2025.03.11 |
| <2025.03.10> 키오스크 과제 Lv2 (0) | 2025.03.10 |
| <2025.03.07> 키오스트 과제 Lv1 (0) | 2025.03.07 |
| <2025.03.06>Java 챕터 [3-1] ~[3~3] (0) | 2025.03.06 |