객체를 생성하는 시점에서 자동으로 호출되는 메서드로 객체의 초기화를 위해서 사용한다.
일반적으로 생성자를 만들지 않으면 기본 생성자가 만들어진다.
자바 컴파일러는 매개변수가 없고, 작동하는 코드가 없는 기본 생성자를 자동으로 만들어준다.
만약 생성자가 하나라도 있다면 자바는 기본 생성자를 만들지 않는다.
참고 : 자바가 자동으로 생성해주는 기본 생성자는 클래스와 같은 접근 제어자를 가진다.
Student student = new Student();
생성자는 인스턴스(객체)를 생성하고 나서 즉시 호출된다.
new 명령어를 통해 생성자 이름(클래스 이름)과 매개변수에 맞추어 인수를 전달한다.
중복 호출 제거
생성자 호출 필수
객체를 생성할 때 직접 정의한 생성자가 있다면, 직접 정의한 생성자를 반드시 호출 해야 한다
생성자를 오버로딩 한다면 이 경우 하나만 호출한다.
생성자도 메서드 오버로딩처럼 매개변수만 다르게 해서 여러 생성자를 제공할 수 있다.
this() 라는 기능을 사용하면 생성자 내부에서 자신의 생성자를 호출할 수 있다.
public class Student {
String name;
int age;
public Student() {
this("",0);
}
public Student(String name, int age) {
this.name = name;
this.age = age;
}
}
이 경우, Student()를 호출하여도 this()를 통해 Student(String name, int age) 생성자를 호출하게 된다.
이를 통해 중복 코드를 제거할 수 있다.
참고 : 생성자에서 this를 사용한다고 해서 객체가 2개 생기는 것은 아님