인프런 커뮤니티 질문&답변

uphoon님의 프로필 이미지
uphoon

작성한 질문수

김영한의 실전 자바 - 중급 1편

열거형 - 리팩토링1

타입 안전 열거형 패턴 질문 입니다.

작성

·

107

·

수정됨

0

package enumeraion.ref1;

public class ClassGrade {
    public static final ClassGrade BASIC = new ClassGrade(10);
    public static final ClassGrade GOLD = new ClassGrade(20);
    public static final ClassGrade DIAMOND = new ClassGrade(30);

    private final int discountPercent;

    private ClassGrade(int discountPercent) {
        this.discountPercent = discountPercent;
    }

    public int getDiscountPercent() {
        return this.discountPercent;
    }
}

문득 궁금한게 저런식으로 자기 자신을 호출 하면 이제 다시 각각의 필드에 인스턴스가 생성될텐데 그럼 그 인스턴스가 무한으로 인스턴스를 생성하지는 않는건지 갑자기 그부분이 헷갈려 질문 드립니다.

정적필드가 아닐경우에는 더욱이 인스턴스가 생성됨가 동시에 각각의 멤버변수의 인스턴스가 또 인스턴스를 생성하는 형태는 아닌지 궁금합니다.

답변 1

1

안녕하세요. uphoon님, 공식 서포터즈 David입니다.

static이 아닌 경우 계속 인스턴스가 생성되어 stack overflow 예외가 발생합니다.

static의 경우 한 번만 실행된다고 생각하시면 됩니다.

감사합니다.

uphoon님의 프로필 이미지
uphoon

작성한 질문수

질문하기