자바에서 생성자(Constructor)는 객체가 "태어날 때" 처음 세팅을 담당.
생성자는 클래스로부터 인스턴스(객체)를 만들 때 무조건 호출되는 '객체 초기화 메서드'
객체를 쓰기 전에 필요한 초기 상태를 맞춰주는 역할
특징 내용
이름 클래스 이름이랑 대소문자까지 똑같아야 함
반환 타입 return값이 없음(void도 안씀)
호출 시점 new 키워드로 객체 생성시 한 번만 호출
목적 인스턴스 변수(필드)의 초기값을 할당해주기 위함
생성자를 만들지 않을 경우
자바 컴파일러가 알아서 매개변수 없는 '디폴트 생성자'를 생성해 줌
이 디폴트 생성자가 호출되면, 변수들은 타입별 기본값으로 초기화됨.
변수 타입 기본값 (초기값)
참조 타입 (String, Class 등) null (아무것도 없음)
정수형 (int, short, long 등) 0
실수형 (double, float) 0.0
논리형 (boolean) false
문자형 (char) '\u0000' (빈 문자)
직접 생성자를 만들면, 객체를 만들 때 꼭 필요한 값을 넣어주도록 강제할 수 있음
public class Car {
String model;
int year;
// 우리가 만든 생성자 (파라미터 있음)
public Car(String modelName, int manufacturedYear) {
this.model = modelName; // 초기값 세팅
this.year = manufacturedYear; // 초기값 세팅
System.out.println("🚗 " + model + " 객체 생성 완료!");
}
// 참고: 이 생성자를 만들면 기본 생성자는 자동으로 안 생김
}
객체 만들기:
// 객체 만들자마자 생성자 호출되고 초기화됨
Car myCar = new Car("테슬라 모델 Y", 2024);
// 출력 결과: 테슬라 모델 Y 객체 생성
결론: 생성자는 자바에서 객체가 제대로 된 초기 상태를 갖도록 보장하는 필수적인 "초기화 담당"