인스턴스가 생성될 떄마다 호출되는 초기화 메서드
인스턴스 생성시 수행할 작업(인스턴스 변수 초기화)에 사용
생성자의 이름은 클래스 이름과 같아야 함
반환값이 없음 (void 붙이지 않음)
모든 클래스는 반드시 생성자를 가져야 함
Card c = new Card();// new Card(); <- 기본생성자를 호출하게 됨
생성자를 명시하지 않더라도 컴파일러가 기본 생성자를 자동으로 생성.
매개변수가 없는 생성자
생성자가 하나도 경우에는 컴파일러에 의해 자동 추가되나, 되도록 생성자를 직접 작성하는 것을 권장
class Car {
// 인스턴스 변수들
String color; // 생상
String gearType; // 변속기 종류
int door; // 도어 갯수
// 기본 생성자
// Car() {} // 생성자가 하나도 존재하지 않는 경우 컴파일러에 의해 자동 생성
Car vehicle = new Car(); // 객체 생성
vehicle.color = "black";
vehicle.gearType = "automatic";
vehicle.door = 4;
사용자 정의 생성자(UserDefined Constructor)라고도 함
인스턴스 변수 초기화를 편리하게 하기 위한 생성자
인스턴스 생성시 매개변수로 인스턴스 초기화에 필요한 값을 넣어줌
생성자가 하나라도 존재하는 클래스에는 컴파일러에 의해 자동으로 기본 생성자가 삽입되지 않음.
class Car {
// 인스턴스 변수들
String color; // 생상
String gearType; // 변속기 종류
int door; // 도어 갯수
// 기본 생성자
// Car() {
// this("black", "automatic", 4);
// }
// 매개변수가 있는 생성자
Car(String color, String gearType, int door) {
this.color = color;
**this.gearType = gearType;
this.door = door;
}
}
Car vehicle1 = new Car(); // 기본생성자 없이 매개변수 생성자만 존재하므로,
// 기본생성자 호출 시 컴파일 에러 발생
Car vehicle2 = new Car("black", "automatic", 4); // 객체 생성과 동시에 초기화