그냥 생성자는 객체 생성 직후 객체를 초기화하기 위한 특별한 메서드임!
MemberConstruct(String name, int age, int grade) {
this.name = name;
this.age = age;
this.grade = grade;
}
package construct;
public class MemberConstruct {
String name;
int age;
int grade;
MemberConstruct(String name, int age) {
this(name, age, 50); //변경
}
MemberConstruct(String name, int age, int grade) {
System.out.println("생성자 호출 name=" + name + ",age=" + age + ",grade=" +
grade);
this.name = name;
this.age = age;
this.grade = grade;
}
}
-this() 를 사용하면 생성자 내부에서 다른 생성자를 호출할 수 있다. 이 부분을 잘 활용하면 지금과 같이 중복을 제거 할 수 있다. 물론 실행 결과는 기존과 같다. 추가로 첫 번째 줄에만 사용할 수 있음
public class Book {
String title;
String author;
int page;
// 기본생성자
Book() {
this("", "", 0);
}
// title과 author만을 매개변수로 받는 생성자
Book(String title, String author) {
this(title, author, 0);
}
// 모든 필드를 매개변수로 받는 생성자
Book(String title, String author, int page) {
this.title = title;
this.author = author;
this.page = page;
}
}
김영한 - 실전 자바