코딩 기록들
[Java Programming] 13.1 Enum 본문
- Singleton Pattern : Application내부에서 유일한 객체로 사용할 수 있도록 하는 개발 패턴
- Singleton Pattern으로 만들어진 클래스는 Application에서 단 1번만 인스턴스 생성을 할 수 있기 때문에, 처음 만들어진 인스턴스를 변경하지 않고 1개의 인스턴스를 계속 사용할 수 있도록함
- Enum은 Java에서 가장 완벽한(유일한) Singleton Instance !
--> 인스턴스 생성을 할 필요없이 한번 정의하는 것으로 유일한 값으로 사용할 수 있기 때문 -> 따라서, 상수를 파라미터로 받고자 할 경우 Enum을 사용하는 것이 가장 좋은 방법 !
--> 인스턴스 생성을 할 필요없이 한번 정의하는 것으로 유일한 값으로 사용할 수 있기 때문 -> 따라서, 상수를 파라미터로 받고자 할 경우 Enum을 사용하는 것이 가장 좋은 방법 !
Enum (열거형)
- 상수를 파라미터로 받는 메소드가 가끔 필요함
- 만약, 변수로 아래처럼 작성했지만, 상수로 쓰고싶을때 ?
int a = 10;
int b = 20;
-> final 붙이면 되지만, 문제가 발생한다
-> enum : 완벽한형태의 상수를 주지만, 값을 바꿀 수 없고, 쓰는 위치(상황)에서만 쓸 수 있도록 하는것
-> 의미를 정확하게 내포하는 상수를 만들고 싶을때 Enum 사용함!
public static enum Type {
ADD, SUB, MUL, DIV
}
-열거타입 이름 : 첫글자 대문자로 시작
- 열거상수 : 모두 대문자로, 여러 단어로 구성될 경우 단어사이를 밑줄_ 로 연결함
열거타입 변수
- 열거타입도 하나의 데이터타입 이므로 1️⃣변수를 선언하고 사용해야 한다.
Week today;
2️⃣변수 선언 후, 열거상수를 저장할 수 있다. 열거상수는 반드시 열거타입.열거상수 형태로 사용된다
Week today = Week.SUNDAY;
- 또한, 열거타입 변수는 null값도 저장할 수 있다.(열거타입도 참조타입이기 때문)
Enum은 값을 가질 수 있다 (Enum이라는 함수를 설명하기 위한 주석 이라고 생각하기)
public static enum Type {
ADD("더하기"), SUB("빼기"), MUL("곱하기"), DIV("나누기"); //각각이 다 생성자임
String name; //enum은 public 보통 안붙임
Type(String name) {
this.name = name;
}
public String getName() { //getter는 public 붙임. 바깥에서 쓰기위한 용도
return name;
}
}
public void calc(Type type, int num1, int num2) {
System.out.println(type.getName() + "연산을 시작합니다.");
'Java' 카테고리의 다른 글
[Java Programming] 14.1 LocalDateTime (2) | 2024.02.05 |
---|---|
[Java Programming] 12.2 NIO (Java1.8 이후 File I/O ) , 재귀호출 (0) | 2024.02.02 |
[Java Programming] 13.2 Calendar (0) | 2024.02.02 |
[Java Programming] 12.1 File I/O (0) | 2024.02.01 |
[Java Programming] 11.2 컬렉션 (ListArray, Map, HashMap, set) (1) | 2024.02.01 |