[Java] 생성자 오버로딩
생성자 오버로딩
생성자 오버로딩
매개변수의 타입, 개수, 순서가 다르게 여러 개의 생성자 선언
/* Car.java */
package ch06.sec07.exam04;
public class Car {
//필드 선언
String company = "현대자동차";
String model;
String color;
int maxSpeed;
//생성자 선언
Car() {}
Car(String model){
this.model = model;
}
Car(String model, String color){
this.model = model;
this.color = color;
}
Car(String model, String color, int maxSpeed){
this.model = model;
this.color = color;
this.maxSpeed = maxSpeed;
}
}
/* CarExample.java */
package ch06.sec07.exam04;
public class CarExample {
public static void main(String[] args) {
Car car1 = new Car(); // 생성자 호출
System.out.println("car1.compnay: "+car1.company);
System.out.println();
Car car2 = new Car("자가용"); // 생성자 호출
System.out.println("car2.company: "+car2.company);
System.out.println("car2.model: "+car2.model);
System.out.println();
Car car3 = new Car("자가용", "빨강");
System.out.println("car3.company: "+car3.company);
System.out.println("car3.model: "+car3.model);
System.out.println("car3.color: "+car3.color);
System.out.println();
Car car4 = new Car("자가용", "빨강", 200);
System.out.println("car4.company: "+car4.company);
System.out.println("car4.model: "+car4.model);
System.out.println("car4.color: "+car4.color);
System.out.println("car4.maxSpeed: "+car4.maxSpeed);
System.out.println();
}
}
다른 생성자 호출
생성자 오버로딩이 많아질 경우 생성자 간의 중복코드가 발생할 수 있다. 이 경우에는 공통 코드를 한 생성자에만 집중적으로 작성하고, 나머지 생성자는 this(…)를 사용하여 공통 코드를 가지고 있는 생성자를 호출하는 방법으로 개선할 수 있다.
package ch06.sec07.exam05;
public class Car {
// 필드 선언
String company = "현대자동차";
String model;
String color;
int maxSpeed;
Car(String model){
//20라인 생성자 호출
this(model,"은색", 250);
}
Car(String model, String color){
//20라인 생성자 호출
this(model, color, 250);
}
Car(String model, String color, int maxSpeed){
this.model = model;
this.color = color;
this.maxSpeed = maxSpeed;
}
}
package ch06.sec07.exam05;
public class CarExample {
public static void main(String[] args) {
Car car1 = new Car("자가용"); // 생성자 호출
System.out.println("car1.company: "+car1.company);
System.out.println("car1.model: "+car1.model);
System.out.println();
Car car2 = new Car("자가용", "빨강"); // 생성자 호출
System.out.println("car2.company: "+car2.company);
System.out.prinåçtln("car2.model: "+car2.model);
System.out.println("car2.color: "+car2.color);
System.out.println();
Car car3 = new Car("택시", "검정", 200); // 생성자 호출
System.out.println("car3.company : "+car3.company);
System.out.println("car3.model : "+car3.model);
System.out.println("car3.color : "+car3.color);
System.out.println("car3.maxSpeed : "+car3.maxSpeed);
}
}
- 출처: 이것이 자바다
댓글남기기