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

+ Recent posts