생성자는 객체가 생성될 때 호출되며 객체를 초기화하는 역할을 수행합니다.
생성자 선언과 호출
public Car() {} // 선언
...
Car car = new Car(); // 호출
- 생성자는 반환 타입이 없고 이름은 클래스의 이름과 동일합니다.
- new 연산자에 의해 객체가 생성되면서 Car(); 즉, 생성자가 호출됩니다.
기본 생성자
기본 생성자는 선언할 때 괄호( ) 안에 아무것도 넣지않는 생성자를 의미합니다.
- 모든 클래스는 반드시 생성자가 하나 이상 존재합니다.
- 만약 클래스에 생성자를 하나도 선언하지 않았다면 컴파일러는 기본 생성자를 바이트코드 파일에 자동으로 추가시켜줍니다. 따라서 이러한 경우는 기본 생성자 생략이 가능합니다.
- 반대로 단 하나라도 생성자가 선언되어있다면 컴파일러는 기본 생성자를 추가하지 않습니다.
필드 초기화
생성자는 객체를 초기화하는 역할을 수행합니다.
- 체를 만들때 인스턴스마다 다른 값을 가져야 한다면 생성자를 통해서 필드를 초기화 할 수 있습니다.
- 예를 들어 만들어지는 자동차 마다 모델, 색상, 가격이 다르다면 생성자를 사용하여 필드의 값을 초기화 하는 것이 좋습니다.
- 반대로 인스턴스 마다 동일한 데이터를 가지는 필드는 초기값을 대입하는 것이 좋습니다.
- 예를 들어 자동차가 만들어질 때마다 기어의 상태를 ‘P’ 로 고정해야 한다면 초기값을 직접 대입하는 것이 좋습니다.
생성자 오버로딩
생성자를 통해 필드를 초기화 할 때 오버로딩을 적용할 수 있습니다.
- 예를들어 우리가 자동차를 생성할 때 모델, 색상, 가격이 다른 자동차를 여러대 생성할 수도 있고 색상만 다른 자동차를 여러대 생성할 수도 있기 때문에 오버로딩을 사용하면 이를 효율적으로 처리할 수 있습니다.
'JAVA공부' 카테고리의 다른 글
접근 제어자 (1) | 2023.10.16 |
---|---|
This 와 this() (0) | 2023.10.16 |
지역변수 및 상수 (0) | 2023.10.16 |
인스턴스 멤버와 클래스 멤버 (0) | 2023.10.16 |
기본형 & 참조형 매개변수 (0) | 2023.10.16 |