- [Error Note] 10. this 키워드-생성자 호출 오류: Constructor call must be the firset statement in a constructor2024년 04월 21일
- Song hyun
- 작성자
- 2024.04.21.:32
728x90반응형[Error Note] 10. this 키워드-생성자 호출 오류:
Constructor call must be the firset statement in a constructor
함께 보면 좋을 글:
https://whatsthatsound.tistory.com/60
생성자 오버로딩 기법은 여러개의 생성자를 만들어, 사용자의 편의에 맞게 변수를 입력하는 기법을 말한다.
이번 게시글에서는 생성자 오버로딩 기법을 사용하는 중에 일어날 수 있는 에러에 대해 이야기해보고자 한다.
아래 코드를 살펴보자.
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반응형'Error Note' 카테고리의 다른 글
다음글이전글이전 글이 없습니다.댓글
스킨 업데이트 안내
현재 이용하고 계신 스킨의 버전보다 더 높은 최신 버전이 감지 되었습니다. 최신버전 스킨 파일을 다운로드 받을 수 있는 페이지로 이동하시겠습니까?
("아니오" 를 선택할 시 30일 동안 최신 버전이 감지되어도 모달 창이 표시되지 않습니다.)