목록이것이 자바다/06 클래스 (17)
충분히 쌓여가는
생성자 오버로딩이 많아질 경우 생성자 간의 중복된 코드가 발생할 수 있다 매개변수의 수만 달리하고 필드 초기화 내용이 비슷한 생성자에서 이러한 중복 코드를 많이 볼 수 있다 Car(String model) { this.model = model; this.color = "은색"; this.maxSpeed = 250; } Car(String model, String color) { this.model = model; this.color = color; this.maxSpeed = 250; } Car(String model, String color, int maxSpeed) { this.model = model; this.color = color; this.maxSpeed = maxSpeed; } 위의 중복 ..
매개값으로 객체의 필드를 다양하게 초기화하려면 생성자 오버로딩 Overloading이 필요하다 생성자 오버로딩 매개변수를 달리하는 생성자를 여러개 선언하는 것 매개변수의 타입과 개수, 선언된 순서가 똑같을 경우 매개변수 이름만 바꾸는 것은 생성자 오버로딩이 아니다 Car(String model, String color) { ... } Car(String color, String model) { ... } //오버로딩 아님, 컴파일 에러 발생 생성자가 오버로딩되어 있을 경우, new 연산자로 생성자를 호출할 때 제공되는 매개값의 타입과 수에 따라 실행될 생성자가 결정된다
클래스가 public class로 선언되면 기본 생성자도 public가 붙지만, 클래스가 public 없이 class로만 선언되면 기본 생성자에도 public이 붙지않는다 개발자가 명시적으로 선언한 생성자가 있다면 컴파일러는 기본 생성자를 추가하지 않는다 개발자가 생성자를 선언하는 이유는 객체를 다양하게 초기화하기 위해서이다 생성자 선언 클래스(매개변수, ...) { //객체의 초기화 코드 } 생성자는 메소드와 비슷한 모양을 가지고 있으나, return 타입이 없고 클래스 이름과 동일하다 매개변수는 new 연산자로 생성자를 호출할 때 매개값을 생성자 블록 내부로 전달하는 역할을 한다 예를 들어 Car 생성자를 호출할 때 3개의 매개값을 블록 내부로 전달한다고 가정 Car myCar = new Car("그..