[자바(Java)] 생성자 개념과 소스 예제

자바 웹개발을 배우다 보면 가장 먼저 접하게 되는 기초 개념 중 하나가 바로 생성자(Constructor)입니다. 클래스에서 객체를 생성할 때 자동으로 호출되는 특별한 메서드로, 자바 웹개발을 제대로 이해하기 위해 꼭 알아야 하는 필수 개념입니다.

생성자란?

생성자는 클래스가 객체로 생성될 때 자동으로 호출되는 메서드입니다. 주로 인스턴스 변수(필드)를 초기화하는 데 사용됩니다.

특징 요약:

  • 생성자는 클래스 이름과 같아야 함
  • 반환형(return type)이 없음 (void도 쓰지 않음)
  • 명시하지 않아도 기본 생성자가 자동으로 제공됨
  • 오버로딩(여러 개 정의) 가능

기본 생성자 예제

public class Book {
    String title;
    String author;

    // 기본 생성자
    public Book() {
        title = "무제";
        author = "작자 미상";
    }

    public void display() {
        System.out.println("제목: " + title + ", 저자: " + author);
    }

    public static void main(String[] args) {
        Book book1 = new Book();  // 생성자 호출
        book1.display();  // 출력: 제목: 무제, 저자: 작자 미상
    }
}

위 코드에서는 생성자 Book()이 객체가 생성될 때 자동으로 호출되어 titleauthor를 초기화합니다.

매개변수가 있는 생성자 (오버로딩)

public class Book {
    String title;
    String author;

    // 생성자 오버로딩
    public Book(String t, String a) {
        title = t;
        author = a;
    }

    public void display() {
        System.out.println("제목: " + title + ", 저자: " + author);
    }

    public static void main(String[] args) {
        Book book2 = new Book("자바의 정석", "남궁성");
        book2.display();  // 출력: 제목: 자바의 정석, 저자: 남궁성
    }
}

이처럼 생성자는 필요에 따라 여러 개 정의할 수 있으며, 이를 생성자 오버로딩이라 합니다.

생성자와 this 키워드

public class Book {
    String title;
    String author;

    public Book(String title, String author) {
        this.title = title;
        this.author = author;
    }
}

위처럼 지역변수와 인스턴스 변수의 이름이 같을 경우 this 키워드를 사용하여 명확히 구분합니다.

생성자의 활용 예시

생성자는 객체 생성 시 자동 초기화 외에도 다음과 같은 경우에 유용합니다:

  • 필수값 전달 강제화
  • 디폴트 값 자동 설정
  • 설정값 검증 로직 포함

결론

구분설명
생성자 이름클래스명과 동일
반환형없음 (void조차 X)
오버로딩가능
역할객체 생성 시 초기화

자바에서 생성자는 단순한 문법 요소가 아닌, 객체지향 프로그래밍의 핵심입니다. 제대로 이해하면 객체 설계와 유지보수가 훨씬 쉬워지고, 코드의 안정성도 높아집니다.

댓글 남기기