자바 웹개발을 배우다 보면 가장 먼저 접하게 되는 기초 개념 중 하나가 바로 생성자(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()이 객체가 생성될 때 자동으로 호출되어 title과 author를 초기화합니다.
매개변수가 있는 생성자 (오버로딩)
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) |
| 오버로딩 | 가능 |
| 역할 | 객체 생성 시 초기화 |
자바에서 생성자는 단순한 문법 요소가 아닌, 객체지향 프로그래밍의 핵심입니다. 제대로 이해하면 객체 설계와 유지보수가 훨씬 쉬워지고, 코드의 안정성도 높아집니다.