1. 생성자란?
- 생성자는 인스턴스가 생성될 때 호출되는 '인스턴스 초기화 메서드'이다.
- 인스턴스 변수의 초기화 작업이나, 인스턴스 생성 시 실행되어야 할 작업을 위해 사용 됨
- 생성자도 오버로딩 가능
- 하나의 클래스에 여러개의 생성자 존재 가능
- 생성자의 조건
- 생성자의 이름은 클래스의 이름과 같아야 한다.
- 생성자는 리턴 값이 없다.
2. 기본 생성자 (default constructor)
- 모든 클래스에는 반드시 하나 이상의 생서자가 정의되어야 함.
- 생성자를 정의하지 않으면 컴파일러가 '기본 생성자'를 제공.
- 기본 생성자는 매개변수도 없고 내용도 없음
3. 매개변수가 있는 생성자
Ex)
class Car {
String color;
Car() {}
Car (String c) {
color = c;
}
}
4. 생성자에서 다른 생성자 호출하기 - this(), this
- 생성자 간 호출하는 조건
- 생성자의 이름으로 클래스이름 대신 this를 사용한다.
- 한 생성자에서 다른 생성자를 호출할 때는 반드시 첫 줄에서만 호출이 가능하다.
- 생성자 내에서 초기화 작업도중에 다른 생성자를 호출하게 되면, 호출된 다른 생서자 내에서도 멤버변수들의 값을 초기화 할 것이기 때문
Ex)
class Car {
String color;
int door;
Car() {
this("white", 4);
}
Car(String color) {
this(color, 4);
}
Car (String color, int door) {
this.color = color;
this.door = door;
}
}
class CarTest {
public static void main(String[] args) {
Car c1 = new Car();
Car c2 = new Car("blue");
}
}
- this
- this는 참조변수로 인스턴스 자신을 가리킴
- this를 사용할 수 있는 것은 인스턴스멤버 뿐임(static메서드에서는 불가)
- 모든 인스턴스메서드에 지역변수로 숨겨진 채 존재함
java의 정석 chapter6