Error Note

[Error Note] 10. this 키워드-생성자 호출 오류: Constructor call must be the firset statement in a constructor

Song hyun 2024. 4. 21. 10:32
728x90
반응형

[Error Note] 10. this 키워드-생성자 호출 오류: 

Constructor call must be the firset statement in a constructor

 

함께 보면 좋을 글:

https://whatsthatsound.tistory.com/60

 

[Java] 26. 키워드 this, this의 3가지 용법

[Java] 26. 키워드 this, this의 3가지 용법 1. this this: 인스턴스(객체) 자신의 메모리를 가리킨다. (인스턴스의 주소) -생성자에서 또 다른 생성자를 호출할 때 사용할 수 있다. -자신의 주소(참조값, 주

whatsthatsound.tistory.com


 

 

생성자 오버로딩 기법은 여러개의 생성자를 만들어, 사용자의 편의에 맞게 변수를 입력하는 기법을 말한다.

이번 게시글에서는 생성자 오버로딩 기법을 사용하는 중에 일어날 수 있는 에러에 대해 이야기해보고자 한다. 

 

아래 코드를 살펴보자.

this 키워드를 사용해, 이전에 작성한 사용자 정의 생성자를 불러오던 중 에러가 발생한 것 을 볼 수 있다.

에러 메세지를 살펴보자면 이렇다. 생성자는 생성자 내부에서 가장 먼저 호출이 되어야 한다는 뜻이다.

 

 Constructor call must be the firset statement in a constructor

 

 

this 키워드에는 총 3가지 용법이 있다. 

 

(1) 자기 자신을 가리키기

(2) 생성자 내부에 다른 생성자를 호출하기

(3) 자신의 주소(참조값)을 반환하기가 바로 그것이다.

 

위의 코드는 this의 두번째 용법인, 생성자 내부에 다른 생성자를 호출하는 기능을 사용한 것이다.

이 기능을 사용할 때는 해당 사용자 정의 생성자 내부에서,

this 키워드가 가리키는 생성자가 가장 먼저 사용되어야 한다는 규칙이 있다.

즉, this 키워드가 두번째로 호출되었기 때문에 에러가 발생한 것이다.

 

코드를 수정해보자.

this.phone=phone;을 두번째 라인으로 내리고,

this(name,age)를 첫번째 라인에 작성해보았다.

 

에러 표시가 사라진 것을 확인할 수 있다^^

728x90
반응형