// 기본생성자 예시
public class Person {
private String name;
private int age;
// 기본생성자
public Person() {
// 아무런 작업도 수행하지 않음
}
// Getter와 Setter 메소드 생략
}
// 매개변수 생성자 예시
public class Person {
private String name;
private int age;
// 매개변수 생성자
public Person(String name, int age) {
this.name = name;
this.age = age;
}
// Getter와 Setter 메소드 생략
}
위 예시에서 Person 클래스는 name과 age 두 개의 멤버 변수를 가지고 있습니다.
Person 클래스에는 기본생성자와 매개변수 생성자를 각각 작성하였습니다.
기본생성자에서는 아무런 작업도 수행하지 않습니다.
매개변수 생성자에서는 name과 age 멤버 변수를 초기화하는 작업을 수행합니다.
이 때, this 키워드를 이용하여 멤버 변수를 참조합니다.
객체 초기화객체를 생성할 때, 멤버 변수들에 초기값을 설정해주어야 합니다. 기본생성자는 아무런 작업도 수행하지 않으므로, 매개변수 생성자를 만들어서 객체를 초기화해주어야 합니다.
다형성(polymorphism)다형성을 구현하려면, 부모 클래스와 자식 클래스 간에 매개변수 생성자를 이용한 상속 관계가 필요합니다. 부모 클래스에서 매개변수 생성자를 만들고, 자식 클래스에서도 이 생성자를 사용하면 다형성을 구현할 수 있습니다.
예외 처리매개변수 생성자를 이용하여 객체를 생성할 때, 인자의 유효성을 검사하여 예외 처리를 수행할 수 있습니다. 예를 들어, 인자로 전달된 값이 올바른 범위나 형식을 가지는지 검사하고, 이상이 있으면 예외를 던지는 등의 처리를 할 수 있습니다.
따라서, 객체 초기화를 위해서라도 기본생성자와 매개변수 생성자를 모두 만들어주는 것이 좋습니다. 단, 초기화 작업이 필요하지 않은 경우에는 기본생성자만 만들어도 됩니다.