[Java] 생성자

이병수·2023년 12월 30일
0

Java

목록 보기
7/27
post-thumbnail
post-custom-banner

생성자


생성자란?

객체를 생성하는 시점에서 자동으로 호출되는 메서드로 객체의 초기화를 위해서 사용한다.

  • 일반적으로 생성자를 만들지 않으면 기본 생성자가 만들어진다.

  • 자바 컴파일러는 매개변수가 없고, 작동하는 코드가 없는 기본 생성자를 자동으로 만들어준다.

  • 만약 생성자가 하나라도 있다면 자바는 기본 생성자를 만들지 않는다.


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

생성자 호출

Student student = new Student();
  • 생성자는 인스턴스(객체)를 생성하고 나서 즉시 호출된다.

  • new 명령어를 통해 생성자 이름(클래스 이름)과 매개변수에 맞추어 인수를 전달한다.

장점

  • 중복 호출 제거

  • 생성자 호출 필수

    • 객체를 생성할 때 직접 정의한 생성자가 있다면, 직접 정의한 생성자를 반드시 호출 해야 한다

    • 생성자를 오버로딩 한다면 이 경우 하나만 호출한다.


this()와 오버로딩

  • 생성자도 메서드 오버로딩처럼 매개변수만 다르게 해서 여러 생성자를 제공할 수 있다.

  • this() 라는 기능을 사용하면 생성자 내부에서 자신의 생성자를 호출할 수 있다.

public class Student {
    String name;
    int age;
    
    public Student() {
        this("",0);
    }
    
    public Student(String name, int age) {
        this.name = name;
        this.age = age;
    } 
}
  • 이 경우, Student()를 호출하여도 this()를 통해 Student(String name, int age) 생성자를 호출하게 된다.

  • 이를 통해 중복 코드를 제거할 수 있다.

this()의 규칙

  • this()는 생성자 코드의 첫줄에만 작성 할 수 있다.

참고 : 생성자에서 this를 사용한다고 해서 객체가 2개 생기는 것은 아님

참고

김영한의 실전 자바 - 기본편

profile
백엔드 개발자가 되고 싶어요
post-custom-banner

0개의 댓글