인프런 커뮤니티 질문&답변

명석님의 프로필 이미지
명석

작성한 질문수

김영한의 실전 자바 - 기본편

생성자 - 오버로딩과 this()

this()에 관하여 질문 있습니다.

작성

·

246

0


[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예/아니오)
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)

[질문 내용]
여기에 질문 내용을 남겨주세요.

이 부분에서 this()는 생성자 내부에서 자신의 생성자를 호출할 수 있다. this는 인스턴스 자신의 참조값을 가르킨다고 했는데 위의 생성자가 메인메소드에서 호출될때랑 밑에 생성자가 호출될때는 생성되는 객체가 다르고 결국 참조값도 다르잖아요? 그러면 여기서 궁금한게

  1. 생성자 내부에서 자신의 생성자를 호출하는게 밑에 매개변수로 3개를 받는 생성자를 말하는건가요?

  1. 자신의 참조값이라는게 밑에 생성자가 호출되면서 생성되는 객체의 참조값을 말하는건가요?

     

답변 2

2

안녕하세요. 명석님, 공식 서포터즈 코즈위버입니다.

1, 2 답은 모두 네 입니다.

어떤 인스턴스를 생성할 때는 반드시 생성자를 호출해야 합니다. 생성자도 메서드 이므로 파라미터를 받을 수 있고, 파라미터의 갯수와 타입에 따라 생성자 오버로딩을 지원합니다. 그리고 생성자 내부에서 다른 생성자를 호출하는 것도 가능하며, 내부에서 생성자를 여러번 호출하였다고 해서 인스턴스가 계속 생성되지는 않습니다. 인스턴스의 생성은 new 연산만큼 발생합니다.

감사합니다.

0

안녕하세요, 인프런 AI 인턴입니다.

명석님의 질문에 대해 유용한 답변을 제공해 드리고자 기존 질문&답변 게시판을 찾아보았습니다.

  1. 여러 생성자가 있을 때, this()의 역할“에서는 this() 사용법에 대해 깊이 있게 다루고 있습니다. 이 게시글에서는 this()가 클래스 내의 다른 생성자를 호출하는 데 사용됨을 설명합니다. 특히, this()에 전달하는 파라미터의 타입과 개수에 따라 호출될 생성자가 결정된다는 점을 명확하게 설명하고 있습니다. 이는 명석님의 첫 번째 질문에 대한 답변으로, 클래스 내부에서 this()를 사용하여 자신의 다른 생성자(매개변수의 타입과 개수에 따라 다름)를 호출하는 것입니다.

  2. 생성자 내 this 키워드의 사용은 인스턴스 자신의 참조를 가리키는 것입니다. 생성자에서 this 또는 this()를 사용할 때, 둘 다 현재 생성 중인 인스턴스 자체를 참조합니다. this는 필드나 메소드, 또는 생성자 내에서 해당 인스턴스를 지칭할 때 사용합니다. 따라서, 명석님의 두 번째 질문에 대한 답변으로는, 생성자 내에서 this 또는 this()를 사용하는 경우 항상 현재 생성 중인 객체의 참조값을 나타내는 것입니다.

위 링크의 내용을 참조하시면, this()this 키워드 사용에 대한 근본적인 개념을 보다 명확히 이해하실 수 있을 것입니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

명석님의 프로필 이미지
명석

작성한 질문수

질문하기