목록분류 전체보기 (639)
충분히 쌓여가는
매개값으로 객체의 필드를 다양하게 초기화하려면 생성자 오버로딩 Overloading이 필요하다 생성자 오버로딩 매개변수를 달리하는 생성자를 여러개 선언하는 것 매개변수의 타입과 개수, 선언된 순서가 똑같을 경우 매개변수 이름만 바꾸는 것은 생성자 오버로딩이 아니다 Car(String model, String color) { ... } Car(String color, String model) { ... } //오버로딩 아님, 컴파일 에러 발생 생성자가 오버로딩되어 있을 경우, new 연산자로 생성자를 호출할 때 제공되는 매개값의 타입과 수에 따라 실행될 생성자가 결정된다
객체마다 동일한 값을 가지고 있다면 필드 선언 시 초기값을 대입하는 것이 좋고, 객체마다 다른 값을 가져야 한다면 생성자에서 필드를 초기화하는 것이 좋다 Korean 클래스 작성 nation은 대한민국으로 동일한 값을 가지지만, name(이름)과 ssn(주민등록번호)는 한국인마다 다르므로 생성자에서 초기화하는 것이 좋다 package ch06.sec07.exam02; public class Korean { String nation = "대한민국"; String name; String ssn; public Korean(String name, String ssn) { this.name = name; this.ssn = ssn; } } package ch06.sec07.exam02; public class K..
클래스가 public class로 선언되면 기본 생성자도 public가 붙지만, 클래스가 public 없이 class로만 선언되면 기본 생성자에도 public이 붙지않는다 개발자가 명시적으로 선언한 생성자가 있다면 컴파일러는 기본 생성자를 추가하지 않는다 개발자가 생성자를 선언하는 이유는 객체를 다양하게 초기화하기 위해서이다 생성자 선언 클래스(매개변수, ...) { //객체의 초기화 코드 } 생성자는 메소드와 비슷한 모양을 가지고 있으나, return 타입이 없고 클래스 이름과 동일하다 매개변수는 new 연산자로 생성자를 호출할 때 매개값을 생성자 블록 내부로 전달하는 역할을 한다 예를 들어 Car 생성자를 호출할 때 3개의 매개값을 블록 내부로 전달한다고 가정 Car myCar = new Car("그..