2015 IT 웹 기반 개발자과정/JAVA
JAVA 생성자 [ this( ) ]
한여름밤의코딩
2015. 11. 10. 15:23
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(); } }