디폴트 생성자는 생성자가 없을 때 적용
생성자가 있으면 더 이상 디폴트 생성자는 적용 안 됨
Person
package default_constructor;
public class Person {
public Person() {
System.out.println("디폴트 생성자로 생성됨");
name = "모름";
age = 0;
}
public Person(String name){
System.out.println("person이 생성됨");
}
@Override
public String toString() {
return "헬로우";
}
}
App
package default_constructor;
public class App {
public static void main(String[] args) {
Person p1 = new Person();
System.out.println(p1);
}
}
Person의 생성자를 수정
public Person(String name){
System.out.println("person이 생성됨");
this.name = name;
age = 0;
}
@Override
public String toString() {
return "Person [name=" + name + ", age=" + age + "]";
}
생성자가 매개변수 String name이 있으므로 없는 생성자는 에러
Person person = new Person("홍길동");
Person이 생성됨!
홍길동
Person
age추가하고
여러 개의 생성자 만들기
package default_constructor;
public class Person {
private String name;
private int age;
public Person() {
System.out.println("디폴트 생성자로 생성됨");
name = "모름";
age = 0;
}
public Person(String name){
System.out.println("person이 생성됨");
this.name = name;
age = 0;
}
public Person(String name, int age) {
System.out.println("person이 생성됨");
this.name = name;
this.age = age;
}
@Override
public String toString() {
return "Person [name=" + name + ", age=" + age + "]";
}
}
App
여러 개의 생성자를 하나씩 사용해서 출력
package default_constructor;
public class App {
public static void main(String[] args) {
Person p1 = new Person();
System.out.println(p1);
Person p2 = new Person("펭수");
System.out.println(p2);
Person p3 = new Person("라이언", 27);
System.out.println(p3);
}
}