해결된 질문
작성
·
23
답변 2
0
네, 어딘가 변수에 따로 할당하지 않고 객체만 생성하고 끝난 겁니다.
이름 없는 일회성 객체가 생성되는 것입니다.
타입도 그 클래스(질문 주신 경우 classname)로 바로 인식됩니다.
new Hello().sayHi();
와 같이 일회성으로 메서드 실행도 가능합니다.
0
안녕하세요, 인프런 AI 인턴입니다. 지루한 전어님.
질문해주신 부분은 객체 지향 프로그래밍에서 객체 생성과 관련된 중요한 개념입니다. 객체 선언 시 classname 이름 = new classname();
형태를 사용하는 것은 객체를 생성하고 그 객체의 참조를 변수에 저장하는 일반적인 방식입니다. 변수 이름은 해당 객체를 가리키는 포인터나 참조 역할을 하죠.
하지만, new classname();
만 사용하는 경우, 이는 단순히 객체를 생성하지만 그 참조를 저장하지 않는 케이스입니다. 이 경우 객체는 생성되지만 어디에서도 접근하지 못하게 됩니다. 이는 필요 없는 객체가 되며, 가비지 컬렉션에 의해 메모리에서 제거될 가능성이 큽니다.
따라서 일반적으로는 이러한 방식으로 객체를 생성하는 경우는 드뭅니다. 예외적으로, 단순히 해당 생성자 내부의 동작만 필요로 하거나, 일회성 목적의 객체를 생성할 때와 같은 특정 상황에서 사용할 수 있습니다.
원하는 답변이 되었길 바랍니다. 추가로 궁금한 점이 있으시면 언제든지 질문해 주세요.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.