2018-4-30 열거형

열거형이란

  • 열어형은 의미가 부여된 이름을 갖는 상수의 선언에 목적이 있다.

인터페이스기반 상수정의

package yoon;

interface Scale2 {
    int DO = 0; int RE = 1; int MI = 2; int FA = 3;
    int SO = 4; int RA = 5; int TI = 6;
}

public class InterfaceBaseConst {
    public static void main(String[] args) {
        int sc = Scale2.DO;

        switch (sc) {
            case Scale2.DO:
                System.out.println("도~ ");
                break;
            case Scale2.RE:
                System.out.println("레~ ");
                break;
            case Scale2.MI:
                System.out.println("미~ ");
                break;
            case Scale2.FA:
                System.out.println("파~ ");
                break;
            default:
                System.out.println("솔~ 라~ 시~ ");
        }
    }
}
//result
도~

인터페이스 내에 선언된 변수는 public, static, final이 선언된 것으로 간주된다.

자료형의 부여를 돋는 열거형

enum Scale3 { // 열거 자료형 Scale의 정의
    DO, RE, MI, FA, SO, RA, TI
}
  • 안에 위치한 이름들을 가리켜 열거형 값 이라고 한다.
  • 참조변수 선언도 가능하다.
package yoon;

enum Scale {
    DO, RE, MI, FA, SO, RA, TI
}

public class SimpleEnum {
    public static void main(String [] args) {
        Scale sc = Scale.DO;
        System.out.println(sc);

        switch (sc) {
            case DO:
                System.out.println("도~");
                break;
            case RE:
                System.out.println("레~");
                break;
            case MI:
                System.out.println("미~");
                break;
            case FA:
                System.out.println("파~");
                break;
            default:
                System.out.println("솔~ 라~ 시~");
                break;
        }
    }
}
//result
DO
도~
package yoon;

enum Animal {
    DOG, CAT
}

enum Person {
    MAN, WOMAN
}

public class SafeEnum {
    public static void main(String[] args) {
        who(Person.MAN);
    }

    public static void who(Person man) {
        switch (man) {
            case MAN:
                System.out.println("남성입니다.");
                break;
            case WOMAN:
                System.out.println("여성입니다.");
                break;
        }
    }
}
//result
남성입니다.

who(Animal.dog); => 에러. Person형이 아니라 Animal형을 전달을 해서 컴파일 에러 발생.
Written on April 30, 2018