2015 IT 웹 기반 개발자과정/JAVA
JAVA 생성자 [ this( ) ]
by 한여름밤의코딩
2015. 11. 10.
package src.kr.ac.jnu.day02;
class Member2 {
private String name;
private int age;
private String addr;
// 각 생성자가 다른 생성자를 호출하면서 필드 값 하나만 바꿔도 유지보수가 쉽다
// 하지만 한번 생성자를 호출하면 3번이나 호출되기 때문에 성능이 느려지기 쉽다는 단점이 있다
Member2() {
this("이름없음"); // 변수 값이 하나인 생성자 호출
// this("이름없음", -1, "주소없음");
// name = "이름없음";
// age = -1;
// addr = "주소없음";
}
Member2(String name) {
this(name, -1); // 변수 값이 두개인 생성자 호출
// this.name = name;
// this.age = -1;
// this.addr = "주소없음";
}
Member2(String name, int age) {
this(name, age, "주소없음"); // 변수 값이 세개인 생성자 호출
// this.name = name;
// this.age = age;
// this.addr = "주소없음";
}
public Member2(String name, int age, String addr) {
this.name = name;
this.age = age;
this.addr = addr;
}
public void info() {
System.out.println("name : " + name + "\tage : " + age + "\taddr : " + addr);
}
}
//class Member {
//
// private String name;
// private int age;
// private String addr;
//
// Member() { // 디폴트 생성자만 바꾸면 유지보수가 쉽지만 각 생성자마다 this.필드명을 반복해야 한다는 단점
// name = "이름없음";
// age = -1;
// addr = "서울";
// }
//
// Member(String name){
// this(); // 필드 값 중 없는 변수는 초기화
// this.name = name;
// }
//
// Member(String name, int age) {
// this(); // 필드 값 중 없는 변수는 초기화
// this.name = name;
// this.age = age;
// }
//
// Member(String name, int age, String addr) {
// this(); // 필드 값 중 없는 변수는 초기화
// this.name = name;
// this.age = age;
// this.addr = addr;
// }
public class ConstructorMain03 {
public static void main(String[] args) {
Member2 m = new Member2();
m.info();
Member2 m2 = new Member2("홍길동");
m2.info();
Member2 m3 = new Member2("고길동", 20);
m3.info();
Member2 m4 = new Member2("한길동", 25, "광주광역시 북구");
m4.info();
}
}