java enum
Enum: 상수의 그룹 -> 그룹 속 상수는 타입이 정해질 필요 없음
상수란?
프로그램이 실행되는 동안(선언과 값설정을 동시에 했다면) 값을 변경할수 없는 것을 말한다
쉽게 말해 다시 재정의가 불가능 한 변환되지 않는 값을 말한다
출처: https://codingisgame.tistory.com/11 [Coding or Gaming]
- 선언
enum Color {
RED, GREEN, BLUE
}
--> 내부적으로..
class Color {
public static final Color RED = new Color();
public static final Color BLUE = new Color();
public static final Color GREEN = new Color();
}*/
모든 enum 상수들은 객체 타입의 enum이다. (new Color())
- 호출
Color color = Color.RED;
-메서드
values() | 모든 상수 반환 |
ordinal() | 상수 인덱스 반환 |
valueOf() | 상수 문자 값 반환 |
https://woowabros.github.io/tools/2017/07/10/java-enum-uses.html
Java Enum 활용기 - 우아한형제들 기술 블로그
안녕하세요? 우아한 형제들에서 결제/정산 시스템을 개발하고 있는 이동욱입니다.이번 사내 블로그 포스팅 주제로 저는 Java Enum 활용 경험을 선택하였습니다. 이전에 개인 블로그에 Enum에 관해 알게 된 점들을 정리했음에도 선택한 이유는 제가 Enum을 통해 많은 도움을 얻었기...
woowabros.github.io
개발을 진행할때 Enum을 통해 얻는 기본적인 장점)
- 문자열과 비교해, IDE의 적극적인 지원을 받을 수 있습니다.
- 자동완성, 오타검증, 텍스트 리팩토링 등등
- 허용 가능한 값들을 제한할 수 있습니다.
- 리팩토링시 변경 범위가 최소화 됩니다.
- 내용의 추가가 필요하더라도, Enum 코드외에 수정할 필요가 없습니다.
이 장점들은 모든 언어들의 Enum에서 얻을 수 있는 공통된 장점입니다.
하지만 Java의 Enum은 이보다 더 많은 장점을 갖고 있습니다.
C/C++의 경우 Enum이 결국 int값이지만, Java의 Enum은 완전한 기능을 갖춘 클래스이기 때문입니다.
public class foreachEx {
enum Week { 월, 화, 수, 목, 금, 토, 일 }
public static void main(String[] args) {
int [] n = { 1,2,3,4,5 };
String names[] = { "사과", "배", "바나나", "체리", "딸기", "포도" } ;
int sum = 0;
// 아래 for-each에서 k는 n[0], n[1], ..., n[4]로 반복
for (int k : n) {
System.out.print(k + " "); // 반복되는 k 값 출력
sum += k;
}
System.out.println("합은" + sum);
// 아래 for-each에서 s는 names[0], names[1], ..., names[5]로 반복
for (String s : names)
System.out.print(s + " ");
System.out.println();
// 아래 for-each에서 day는 월, 화, 수, 목, 금, 토, 일 값으로 반복
for (Week day : Week.values())
System.out.print(day + "요일 ");
System.out.println();
}
}