생성자 (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) {...}
}
'내가 보려고 정리한 JAVA' 카테고리의 다른 글
[자바] 시험대비 (0) | 2020.05.22 |
---|---|
[자바 객체 문법] this 키워드 (0) | 2020.04.18 |
[자바 객체 문법] 필드 (0) | 2020.04.18 |
[자바 객체 문법] 매개변수(Parameter) (0) | 2020.04.17 |
[자바 객체 문법] 객체 배열 (0) | 2020.04.17 |