클래스명 변수명; (참조변수)
변수명 = new 클래스명();
↕
클래스명 변수명 = new 클래스명();
생성자는 인스턴스 변수들의 ★초기화 작업에 주로 사용되며, 인스턴스 생성 시에 실행되어야 할 작업을 위해서도 사용된다.
생성자 역시 method 처럼 클래스 내에 선언된다.
구조도 method 와 유사하지만 리턴값이 없다. 그렇다고 키워드 void등을 사용하지는 않고 아무것도 적지 않는다.
★★ 생성자의 이름은 클래스의 이름과 같아야 한다.
생성자 FORM
클래스이름(타입 변수명, 타입 변수명, ...) {
//인스턴스 생성 시 수행될 코드
// 주로 인스턴스 변수의 초기화 코드를 적음
}
생성자도 오버로딩이 가능하므로 하나의 클래스에 여러개의 생성자가 존재할 수 있다.
예시)
class Card{
Card() { // 매개변수가 없는 생성자
}
Card(String k, int num) { // 매개변수가 있는 생성자
}
}
모든 클래스에는 반드시 하나 이상의 생성자가 정의되어 있어야 한다.
만약 클래스에 생성자를 정의하지 않으면 컴파일러가 '기본 생성자'를 추가해준다.
기본 생성자 형식
클래스이름() {}
*기본 생성자가 컴파일러에 의해 추가되는 경우는 클래스에 정의된 생성자가 하나도 없을 때 뿐이다.
class Car {
...
...
...
Car(){}
}
class CarTest {
...
...
Car c1 = new Car();
c1.color = "white" ;
c1.gearType = "auto";
c1.door = 4;
}
★ 2. 매개변수가 있는 생성자
class Car {
Car(String c, String g, int d){
color = c;
gearType = g;
door = d;
}
}
class CarTest {
Car c2 = new Car("white", "auto",4);
}
생성자 간에도 서로 호출이 가능하다. 단, 다음의 두 조건을 만족시켜야 한다.