본문으로 바로가기

[JAVA] 생성자

category Helloworld!/JAVA 2016. 6. 6. 22:05

1. 생성자

- 인스턴스가 생성될 때 호출되는 인스턴스 초기화 메서드

- 인스턴수 변수 초기화 

- 또는, 인스턴스 생성시 실행되어야 할 작업을 위해서 사용


2. 생성자 사용방법

- 생성자의 이름은 클래스의 이름과 같아야한다.

- 생성자는 리턴값이 없다.


3. 기본 생성자

- 사실 모든 클래스에는 반드시 하나 이상의 생성자가 정의되어있어야한다.

- 하지만 클래스에 생성자를 정의하지 않고도 인스턴스를 사용할 수 있는데 기본 생성자 덕분

- 컴파일 할때 소스파일(*.java)의 클래스에 생성자가 하나도 정의되있지 않은 경우 컴파일러는 자동적으로 기본 생성자를 추가하여 컴파일한다.


4. 매개변수가 있는 생성자

- 생성자도 메서드 처럼 매개변수를 선언하여 호출 시 값을 넘겨받아서 인스턴스 초기화 작업으로 사용 가능하다.

- 그럴 경우 매개변수를 이용한 초기화는 매우 유용


5. 생성자에서 다른 생성자 호출하기 : this(), this

- 같은 클래스의 맴버들 간에 서로 호출할 수 있는 것처럼 생성자 간에도 서로 호출 가능

- 단 다음 두 조건을 만족해야한다

1) 생성자의 이름으로 클래스 이름 대신 this 사용

2) 한 생성자에서 다른 생성자를 호출할 때 반드시 첫줄에서만 호출 가능


- this : 인스턴스 자신을 가리키는 참조변수, 인스턴스의 주소가 저장되어 있다.

모든 인스턴스메서드에 지역변수로 숨겨진 채로 존재한다.

- this(), this(매개변수) : 생성자, 같은 클래스의 다른 생성자를 호출할 때 사용한다

class Car {
    String color;
    String gearType;
    int door;

    Car() {
        this("white", "auto", 4); //Car(String color, String gearType, int door) 호출
    }

    Car(String color) {
        this(color, "auto", 4);
    }

    Car(String color, String gearType, int door) {
        this.color = color;
        this.gearType = gearType;
        this.door = door;
    }
}