생성자(Constructor)
- 클래스를 사용하여 인스턴스를 생성할 때 호출되는 메서드 형태
-> NEW 키워드 뒤에 생성자 호출 코드가 기술됨
- 주로 인스턴스 변수를 초기화하는 용도 또는 인스턴스 생성 시 초기에 수행할 작업을 기술하는 용도
- 메서드 형태와 유사하나 차이점 두 가지 존재
1) 선언부에 리턴 타입이 없음 (리턴값이 없는 것이 아니라 리턴 타입 자체를 기술하지 않음)
2) 생성자 이름이 클래스 이름과 동일함
- 개발자가 클래스 정의 시 생성자를 하나도 정의하지 않으면 컴파일러에 의해 자동으로 기본(Default) 생성자가 생성됨
- 메서드와 유사한 형태이므로 파라미터가 있을 수도 있고, 없을 수도 있음
- 생성자를 별도로 호출할 수 없으며 반드시 NEW 키워드 뒤에만 지정할 수 있음
< 생성자 정의 기본 문법 >
[접근제한자] 메서드명([매개변수선언...]){
// 생성자 호출 시점(인스턴스 생성 시점)에 수행할 작업을 기술
// -> 인스턴스 변수 초기화 등
}
< 인스턴스 생성 기본 문법 >
클래스명 참조변수명 = new 생성자명([데이터...]);
클래스 정의 시 개발자가 별도의 생성자를 정의하지 않으면 자바 컴파일러에 의해 기본 생성자가 자동으로 생성됨
-> 기본 생성자는 접근제한자가 클래스와 같고, 리턴 타입이 없으며, 이름은 클래스 이름과 같다
또한, 매개변수가 없으며 중괄호 블록{} 내에 수행할 코드가 없다
public Person() {} // 기본 생성자(Default Constructor)
파라미터 생성자
- 생성자 호출 시점에서 전달해야 할 데이터가 있을 경우 생성자 파라미터(매개변수)를 선언할 수 있음(=메서드와 동일)
- 전달받은 데이터는 인스턴스 변수를 초기화하는 용도로 사용
- 즉, 객체마다 다른 데이터를 가진 채로 인스턴스를 생성하기 위해 사용
< 파라미터 생성자 정의 기본 문법 >
[접근제한자] 클래스명(매개변수선언...){
// 생성자 호출 시점에 파라미터에 데이터를 전달하여
// 인스턴스 내의 인스턴스 변수(멤버변수)를 초기화함
인스턴스 변수명(멤버변수명) = 매개변수명(데이터)
}
생성자 오버로딩
- 메서드 오버로딩과 동일
- 생성자 호출 시 다양한 형태의 파라미터를 전달하여 객체를 다양하게 초기화하는 목적
'⛏️ > JAVA' 카테고리의 다른 글
[JAVA] 13. 가변형 인자 (0) | 2023.09.11 |
---|---|
[JAVA] 12. 배열 (0) | 2023.09.05 |
[JAVA] 10. 오버로딩 (0) | 2023.08.29 |
[JAVA] 9. 접근제한자 (0) | 2023.08.29 |
[JAVA] 8. 객체지향 (0) | 2023.08.22 |