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

인프린님의 프로필 이미지
인프린

작성한 질문수

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

직접 구현하는 Set1 - MyHashSetV1

생성자 질문

작성

·

123

0

안녕하세요.

MyHashSetV1()에서 작성한 코드를 중복으로 작성하지 않기 위해 MyHashSetV1(int capacity)에는 기본 생성자를 바디의 최상단이 아닌 곳에서 선언했더니 에러가 나는데, 이게 예전에도 안된다고 설명은 해주셨는데 왜 안되는지가 문득 궁금하네요.

설명 부탁드립니다.

감사합니다.

public MyHashSetV1(int capacity){
    this.capacity = capacity;
    this();
}

답변 1

1

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

언어 스펙에서 생성자를 구성하는 조건으로 생성자의 첫줄에 명시적 생성자 호출에 대한 부분을 요구하고 있습니다. 자세한 내용은 아래 문서를 참고해 주세요.

https://docs.oracle.com/javase/specs/jls/se21/html/jls-8.html#jls-8.8.7

https://docs.oracle.com/javase/specs/jls/se21/html/jls-8.html#jls-ExplicitConstructorInvocation

감사합니다.

인프린님의 프로필 이미지
인프린

작성한 질문수

질문하기