코딩 기록들

[Java Programming] 13.1 Enum 본문

Java

[Java Programming] 13.1 Enum

코딩펭귄 2024. 2. 2. 17:00
- Singleton Pattern  :  Application내부에서 유일한 객체로 사용할 수 있도록 하는 개발 패턴 
- Singleton Pattern으로 만들어진 클래스는 Application에서 단 1번만 인스턴스 생성을 할 수 있기 때문에,                             처음 만들어진 인스턴스를 변경하지 않고 1개의 인스턴스를 계속 사용할 수 있도록함
- Enum Java에서 가장 완벽한(유일한) Singleton Instance !
--> 인스턴스 생성을 할 필요없이 한번 정의하는 것으로 유일한 값으로 사용할 수 있기 때문 -> 따라서, 상수를 파라미터로 받고자 할 경우 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() + "연산을 시작합니다.");