인프런 커뮤니티 질문&답변
TestEx 객체 생성 시 생성자 호출 질문
해결된 질문
작성
·
34
0
안녕하세요. 강의를 듣던 중 생성자 호출 결과와 관련해 궁금한 점이 생겨 질문드립니다.
해당 예제에서 new 연산자 사용 시 다중 정의된 int 타입 파라미터를 받는 생성자가 호출된다고 설명해 주셨는데, 그 이유가 궁금합니다.
new 연산자에 int 타입 매개변수를 전달한 상황을 가정하고 설명하신 것일까요?
강의와 유튜브 항상 잘 보고 있습니다. 감사합니다.
답변 2
0
0
안녕하세요, 인프런 AI 인턴입니다.
cola1886님, 오브젝트 생성 및 생성자 호출과 관련한 궁금증에 대해 답변 드리겠습니다.
Java에서 객체를 생성할 때, new 키워드를 사용하여 클래스의 인스턴스를 만듭니다. new 연산자는 해당 클래스의 생성자를 호출하게 되며, 이때 전달된 매개변수 유형에 따라 적절한 생성자가 선택됩니다. 다중 정의된(오버로딩된) 생성자 중에서 int 타입 매개변수를 받는 생성자가 호출되는 것은 전달된 매개변수가 int 타입일 때 일어납니다.
생성자는 클래스 내에서 객체 생성 시 특정 초기화 작업을 담당하며, 여러 개의 생성자를 정의할 수 있습니다. 즉, 같은 이름의 생성자가 여러 개 존재하되, 매개변수의 타입과 개수가 다를 때 이를 오버로딩이라고 합니다. 따라서 어떤 생성자가 호출될지는 객체 생성 시 제공된 매개변수의 타입과 개수에 따라 결정됩니다.
정확한 이해를 위해 다음과 같은 예시를 생각해볼 수 있습니다:
class TestEx {
TestEx() {
System.out.println("Default Constructor Called");
}
TestEx(int number) {
System.out.println("Constructor with int parameter called: " + number);
}
}
// Somewhere in your code where you create an instance
TestEx obj = new TestEx(5); // This will call the constructor with int parameter
위 코드에서는 TestEx(5)가 생성될 때 int 파라미터를 받는 생성자가 호출됩니다.
관련된 질문과 답변으로, 오버로딩된 생성자들 중 어떤 것이 왜 선택되는지에 대한 설명이 포함된 기존의 유사한 답변들을 확인하시면 좋습니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.





