[Java] 기본 생성자

코드 속의 "진돌"·2024년 2월 10일
0
post-thumbnail

✅ 기본 생성자


  • 매개변수가 없는 생성자를 기본 생성자라 한다.
  • 클래스에 생성자가 하나도 없으면 자바 컴파일러는 매개변수가 없고, 작동하는 코드가 없는 기본 생성자를 자동으로 만들어준다.
  • 생성자가 하나라도 있으면 자바는 기본 생성자를 만들지 않는다.



✏️ MemberDefault

package construct;

public class MemberDefault {
  String name;
}



✏️ MemberDefaultMain

package construct;

public class MemberDefaultMain {

  public static void main(String[] args) {
    MemberDefault memberDefault = new MemberDefault();
  }
}

MemberDefault 클래스에는 생성자가 하나도 없으므로 자바는 자동으로 다음과 같은 기본 생성자를 만들어준다.



✏️ MemberDefault - 기본 생성자

package construct;

public class MemberDefault {
  String name;

	// 기본 생성자
  public MemberDefault () {
  }
}

참고 : 자바가 자동으로 생성해주는 기본 생성자는 클래스와 같은 접근 제어자를 가진다. (public)

물론 다음과 같이 기본 생성자를 직접 정의해도 된다.

package construct;

public class MemberDefault {
  String name;

  MemberDefault () {
    System.out.println("생성자 호출");
  }
}



🖥️ 실행 결과



💡 기본 생성자를 왜 자동으로 만들어줄까?

만약 자바에서 기본 생성자를 만들어주지 않는다면 생성자 기능이 필요하지 않은 경우에도 모든 클래스에 개발자가 직접 기본 생성자를 정의해야 한다. 생성자 기능을 사용하지 않는 경우도 많기 때문에 이런 편의 기능을 제공한다.



📚 정리

  • 생성자는 반드시 호출되어야 한다.
  • 생성자가 없으면 기본 생성자가 제공된다.
  • 생성자가 하나라도 있으면 기본 생성자가 제공되지 않는다. 이 경우 개발자가 정의한 생성자를 직접 호출해야 한다.
profile
매일 성장하는 주니어 개발자의 기록📝

0개의 댓글