class MyClass{
enum Enum1 {A,B,C}
enum Enum2{
A(1), B(2), C(4);
private int value;
private Enum2(int value) {
this.value = value;
}
public int getValue() {
return this.value;
}
}
public void printEnum() {
System.out.println(Enum1.A); //A
System.out.println(Enum1.B); //B
System.out.println(Enum2.A.getValue()); //1
System.out.println(Enum2.C.getValue()); //4
}
}
Enum 내부의 상수들은... 의미상 상수처럼 쓸 수 있지만 사실 인스턴스이다....
enum 이 class 라고 생각하면 더 이해하기 편할 듯
위에 예제에서 Enum1 내부 A, B, C 는 사실 Enum1 자기 자체를 구현한 인스턴스들임.
Enum1 A = new Enum1();
Enum1 B = new Enum1();
Enum1 C = new Enum1();
그럼에도 불구하고 출력했을 때 왜 "A", "B" 가 나오는지는 모르겠음.
이와 동일하게, Enum2 내부 A, B, C 도 마찬가지로 Enum2 를 구현한 인스턴스들임.
Enum2 A = new Enum2(1);
Enum2 B = new Enum2(2);
Enum2 C = new Enum2(4);
Enum2 는 자체 생성자를 갖고있기 때문에,
생성자에 맞춰서 실행 한 것.
'눈가락' 카테고리의 다른 글
Gradle 공부 필기 (0) | 2024.04.01 |
---|---|
[IT] CS 면접 대비 Python 질문 모음 (0) | 2024.02.17 |
[JAVA] Generic 간단한 샘플 코드 (0) | 2023.08.20 |
[리뷰] 페어페딕7 카키 한 달 사용 후기 (1) | 2023.01.07 |
[AWS] IAM 공부 (0) | 2022.12.29 |