[기초] 시리즈는 본강의를 수강후 정리한 글들 입니다.
생성자
- 클래스의 구성요소 중 하나로, 객체를 인스턴스화 할때 가장 먼저 호출되는 특수한 메소드
- 생성자의 역할은 객체가 갖는 필드의 초기화이며 다라서 모든 클래스는 하나 이상의 생성자를 가짐.
- 생성자는 여러개 정의 가능 (생성자 오버로딩)
- 생성자의 이름은 해당 클래스의 이름과 같고 반환 타입을 갖지 않음.
- 생성자도 모든 접근제어자를 적용할 수 있으며 일반적으로 public 접근제어자가 적용
디폴트 생성자 Defalt Constructor
- 매개 변수가 없고 구현 내용 없이 정의하는 생성자 = 기본 생성자 / 디폴트 생성자
- 클래스는 반드시 하나 이상의 생성자를 가지며 사용자가 생성자를 정의하지 않으면 디폴트 생성자가 자동으로 생성.
- 접근제어자는 다 가능하지만 일반적으로 생성자의 접근지정자는 public. inner class의 경우에는 생성자에도 private 가능(싱글톤 패턴)
- 생성자에서 면시적으로 필드의 값을 설정하지 않으면 디폴트 값으로 초기화.
- 디폴트 초기값 : 숫자 타입 (0), 논리타입 (false), 참조 타입 (null)
사용자 정의 생성자 User Defined Constructor
- 클래스 필드의 초기화를 위해서 정의하는 생성자를 사용자 정의 생성자라고 함.
- 사용자 정의 생성자는 해당 클래스가 갖는 필드의 초기화를 귀해 정의하며 여러 형태로 정의가 가능
- 만일, 사용자가 하나 이상의 사용자 정의 생성자를 만들었다면 디폴트 생성자는 자동으로 생성되지 않음.
생성자 오버로딩
- 클래스 필드의 초기화는 다양한 방식으로 이루어질 수 있으며 이를 위해 다양한 형태의 생성자를 정의할 수 있음.
- 생성자의 이름은 반드시 클래스의 이름과 동일해야 하기 때문에, 다수의 생성자 정의는 생성자 오버로딩으로 정의
- 생성자 오버로딩은 해당 클래스를 구성하는 생성자들이 매개변수 개수와 타입, 순서를 달리하여 정의
- 파라미터에 정의되는 변수명이 아니라 개수, 타입을 가지고 구분함!
- 객체의 인스턴스화 과정에서 생성자를 호출하며 이때 전달인자를 다르게 하여 필요한 생성자를 호출
this () constructor
- 생성자 간의 서로 호출하는 기능.
- 생성자는 객체를 인스턴스화 하는 과정에서 한번만 호출 가능
- 하나의 클래스에 정의된 다수의 생성자 간에 this() 생성자를 통해 호출이 가능합니다.
- this() 생성자는 중복되는 코드를 제거하고 생성자를 재사용하기 위해 사용
- this() 생성자의 호출은 반드시 생성자 이름의 바로 아래에 위치
2022.08.10 - [JAVA] - [JAVA] 생성자 / this / 생성자 오버로딩
'☕JAVA > 🐣 강의 [JAVA]' 카테고리의 다른 글
[JAVA][기초] Static 과 final (0) | 2022.10.05 |
---|---|
[JAVA][기초] Java 메모리 모델 (0) | 2022.10.05 |
[JAVA][기초] 메소드 Method , 오버로딩 Overloading (0) | 2022.10.04 |
[JAVA][기초] 연산자 (0) | 2022.10.04 |
[JAVA][기초] 클래스의 이해3 - 필드의 정의 (2) Data Type 의 이해 (0) | 2022.09.30 |