객체를 인스턴스화(Instance)할 때 호출되는 특별한 메서드이다.
클래스 내부에 constructor(생성자) 정의
→ 객체가 생성될 때 해당 constructor(생성자) 자동으로 호출
→ 객체의 초기화 수행
즉, constructor(생성자)는 객체가 사용될 준비를 하고 초기 상태를 설정하는 역할을 한다.
생성자의 이름은 해당 클래스의 이름과 동일해야 한다.
이를 통해 자바에서 생성자를 식별하고 호출할 수 있다.
생성자는 반환 타입을 명시하지 않으며, 실제로 반환되는 값이 없다.
객체 자체를 반환하는 것이 아니라 객체의 초기화를 담당한다.
하나의 클래스에는 여러 개의 생성자를 정의할 수 있다.
매개변수의 종류, 개수, 순서를 다르게하여 다양한 생성자를 오버로딩할 수 있다.
클래스에 생성자를 명시적으로 정의하지 않으면, 컴파일러는 자동으로 기본 생성자를 생성한다.
기본(default) 생성자는 매개변수가 없고 아무 동작도 수행하지 않는 생성자다.
생성자를 사용하여 객체를 초기화하고, 필요한 초기값을 설정한다.
인스턴스 변수의 값이나 객체의 상태를 초기화하는 데 사용된다.
생성자는 인스턴스화할 때 매개변수를 전달할 수 있다.
이를 통해 객체에 필요한 데이터를 제공하고, 다양한 상태로 객체를 생성할 수 있다.
public class MyClass {
private int value;
// Parameterized Constructor (매개변수를 가지는 생성자)
public MyClass(int value) {
this.value = value;
}
// Default Constructor (기본 생성자)
public MyClass() {
this.value = 0;
}
// 메서드 예시
public void printValue() {
System.out.println("Value: " + value);
}
public static void main(String[] args) {
// 객체 생성 및 생성자 호출
MyClass obj1 = new MyClass(10);
obj1.printValue(); // 출력: Value: 10
MyClass obj2 = new MyClass();
obj2.printValue(); // 출력: Value: 0
}
}
MyClass 클래스는 value라는 인스턴스 변수를 가지고 있다.value를 매개변수로 받아 객체를 초기화하고,public class MyClass {
private int value;
// Parameterized Constructor
public MyClass(int value) {
this.value = value;
}
}
매개변수 constructor는 다양한 초기화 상황에 유연성을 제공하며, 객체 생성 시 다양한 매개변수 조합을 사용할 수 있습니다. 이를 통해 객체의 특정 상태로 초기화하거나 다양한 데이터를 객체에 전달할 수 있습니다. 기본 생성자와 매개변수 생성자는 필요에 따라 동시에 정의될 수 있으며, 클래스에는 여러 개의 생성자가 존재할 수 있습니다.