본문 바로가기
Develop/Java

생성자란?

by jaeyoungb 2022. 9. 5.

생성자는 인스턴스가 생성될 때,

호출되는 인스턴스 변수들을 초기화하는 데 사용되는 특수한 메서드이다.

 

생성자의 기본 구조는 다음과 같다.

클래스명(매개변수) {
         ---- 생략 ----
}

 

생성자도 메서드라고 할 수 있다. 하지만, 메서드와 다른 점이 존재한다.

  • 생성자의 이름은 반드시 클래스의 이름과 같아야 한다.
  • 생성자는 리턴 타입 자체가 존재하지 않는다.
  • 매개 변수는 있을 수도, 없을 수도 있다.
  • 한 클래스 내에 여러 개의 생성자가 존재할 수 있다.
모든 클래스에는 하나 이상의 생성자가 존재해야 한다.

 

 

메서드 오버로딩은 생성자에서도 구현될 수 있다.

다음 코드를 통해 예시를 보자.

메서드 오버로딩을 생성자에서 구현한 예시

 

 

클래스에서 생성자를 만들어주지 않으면, 자동으로 자바 컴파일러가 기본 생성자를 만들어준다.

기본 생성자는 매개변수가 없는 생성자를 말한다.

매개변수가 있는 생성자는 메서드와 동일하게,
매개변수를 입력하고 호출 시에 해당 값을 받아 인스턴스를 초기화하는데 사용한다.

 

 

this 키워드는 이름이 같은 인스턴스 변수와 매개변수를 구분해주기 위한 용도로 사용된다.

this 키워드는 인스턴스 자신을 가리키며, 인스턴스 자신의 변수에 접근할 수 있게 한다.

 

this() 메서드는 자신이 속한 클래스에서 다른 생성자를 호출하는 경우에 사용한다.

반드시 생성자 내부에서만 사용할 수 있고, 생성자의 첫 줄에 위치해야 한다.

 

 

다음 코드로 this와 this()의 차이점을 살펴보자.

this와 this()의 차이점을 위한 예시

 

결과값은 다음과 같다.

Example의 기본생성자 호출!                                        // Example 클래스로부터 인스턴스를 생성했을 경우

Example의 기본생성자 호출!                                        // Example 클래스로부터 매개변수 x를 입력하고,
Example의 두 번째 생성자 호출!                                   // 인스턴스를 생성했을 경우

 

 

내용에 대해 더 깊게 알게 되면, 내용을 더 추가할 예정입니다.

피드백 환영합니다!