※ 이 글은 자바의정석을 참조하였다.

1. 생성자란?
  • 인스턴스가 생성될 때마다 호출되는 인스턴스 초기화 메서드
  • 인스턴스 변수의 초기화 또는 인스턴스 생성시 수행할 작업에 사용
  • 모든클래스는 반드시 하나이상의 생성자가 있어야 한다.
2. 기본 생성자
  • 매개변수가 없는 생성자
  • 클래스에 생성자가 하나도 없으면 컴파일러가 기본 생성자를 추가한다. (생성자가 하나라도 있으면 컴파일러는 기본 생성자를 추가하지 않는다.)
3. 생성자에서 다른 생성자 호출하기 - this()
  • this() : 같은 클래스의 다른 생성자를 호출할 때 사용, 다른생성자 호출은 생성자의 첫 문장에서만 가능
4. 참조변수 this
  • this : 인스턴스 자신을 가리키는 참조변수. 인스턴스의 주소가 저장되어 있음
5. 변수의 초기화
  • 멤버변수(인스턴스변수, 클래스변수)와 배열은 각타입의 기본값으로 자동초기화되므로 초기화를 생략할 수 있다.
  • 지역변수는 무조건 초기화를 해야 한다.
자료형 기본값
boolean false
char ‘\u0000’
byte 0
short 0
int 0
long 0L
float 0.0f
double 0.0d
참조변수 null

6. 현재(2026) 기준 참고 사항

빌더 패턴 (많은 매개변수가 있을 때)

// 빌더 패턴
public class User {
  private String name;
  private String email;
  private int age;

  public static class Builder {
    private String name;
    private String email;
    private int age;

    public Builder name(String name) {
      this.name = name;
      return this;
    }
    public Builder email(String email) {
      this.email = email;
      return this;
    }
    public User build() {
      return new User(this);
    }
  }
}

// 사용
User user = new User.Builder()
  .name("홍길동")
  .email("hong@example.com")
  .build();

Lombok으로 간소화

import lombok.*;

@Getter
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class User {
  private String name;
  private String email;
  private int age;
}

Record (Java 14+)

public record User(String name, String email, int age) {}
  • TODO: 프로젝트 Lombok 도입 여부 및 설정 확인 필요
chanhee.kim's profile image

chanhee.kim

2017-12-23 12:42

Read more posts by this author