본문 바로가기
내가 보려고 정리한 JAVA

[자바 객체 문법] 생성자 (Constructor)

by nacastle 2020. 4. 18.

생성자 (Constructor)

한마디 정리: "객체를 생성할 때 호출되어 객체의 초기화를 담당"

즉, 인스턴트 객체를 생성할 때 필요하다.

 

객체 초기화란?

1. 필드를 초기화하거나

2. 메소드를 호출해서 객체를 사용할 준비를 하는 것

 

생성자도 일종의 메소드라고 본다.

 

클래스에 생성자를 따로 선언하지 않아도 기본 생성자로 객체를 만들 수도 있다.

 

코드로 살펴보자면...

 

public class Car {

}

 

위 Car 클래스 안에는 어떤 생성자도 선언되지 않았지만,

기본 생성자로 객체를 생성할 수 있다.

Car myCar = new Car();  // Car(); = 기본 생성자

 

 

또,

생성자는 메소드와 비슷한 모양이지만 리턴타입이 없다.

생성자는 클래스 이름과 동일하다.

 

생성자가 선언되고 사용된 코드를 살펴보자...


// 생성자 선언 (1. 필드를 초기화하거나...) <- 확실치 않다...

public class Car {

    Car(String color, int maxSpeed) {...   // 클래스 이름과 동일 (color와 maxSpeed 는 매개변수)

    }  // 리턴타입이 없다

}

 

// 생성자를 호출해서 객체 생성 (2. 메소드를 사용해서 객체를 사용할 준비를 한다...) <- 확실치 않다...

public class CarMain {

    public static void main (String[} args) {

        Car myCar = new Car("black", 200);

    }

}


 

또,

생성자는 오버로딩(Overloading)이 가능하다.

오버로딩이란?

"2개 이상의 메소드가 같은 이름을 가지고 있지만 / 매개변수의 타입이나 개수는 다르게 할 수 있는 기술"

 

생성자 오버로딩이란?

매개변수를 달리하는 생성자를 여러 개 선언하는 것

 

 

코드로 살펴보자면...


public class Car {

    Car() {...}

    Car(String color) {...}

    Car(String color, int maxSpeed) {...}

    Car(String color, int maxSpeed, String model) {...}

}


 

반응형