생성자의 모양에 따라 객체를 생성하는 방법이 결정된다. 어떤 클래스 안에 기본 생성자만 있다면 기본 생성자 모양으로만 객체를 생성할 수 있고 int형을 입력매개변수로 표함하고 있는 생성자만 있다면 int형 값을 입력으로 받아 생성자를 호출해야만 객체를 만들 수 있다. 생성자도 메서드처럼 오버로딩을 할 수 있다. 즉 메서드처럼 생성자의 입력매개변수 자료형이나 개수에 따라 여러 개의 생성자를 정의할 수 있다. 예를 들어 다음 예제와 같이 클래스 A에 서로 다른 내용의 생성자 3개가 오버로딩돼 있다믄 클래스 A로 객체를 만드는 3가지 방법이 존재하는 것이다.
class A{
A() {
System.out.println("첫 번째 생성자");
}
A(int a) {
System.out.println("두 번째 생성자");
}
A(int a, int b) {
System.out.println("세 번째 생성자");
}
}
public class jh {
public static void main(String[] args) {
A a1 = new A();
A a2 = new A(3);
A a3 = new A(3,5);
}
}
결과