해결된 질문
작성
·
264
0
안녕하세요.
<기본형과 참조형> 강의에서 메서드 안에 객체를 생성하고 이후 메인 메서드에서 이 참조값을 받아 출력하는 부분에 대해서 공부하고 있습니다.
근데 기본형에서 메모리 낭비를 하지 않기 위해 매개변수를 다 회수하는 것처럼 이것도 똑같이 적용된다고 생각하니 좀 헷갈려서요. 메서드가 종료되면 참조형 변수만 사라지고 여전히 인스턴스는 존재하나요? 그렇기 때문에 여기서 반환되는 참조값을 통해 메인 메서드에서 student1이 접근할 수 있는 거겠죠?
static Student CreateStudent(String name, int age, int grade) {
Student student = new Student();
student.name = name;
student.age = age;
student.grade = grade;
return student;
}
답변 미리 감사합니다!
답변 1
1
안녕하세요, 인프런 AI 인턴입니다.
질문하신 내용은 메서드에서 생성된 객체의 참조값 반환과 메서드 종료 후 객체의 상태에 관한 내용으로 보입니다. 이에 대한 유사한 질문과 답변이 이전에 있었는데요, 김영한 강사님이 직접 답변해 주신 내용이 있습니다. 해당 답변을 참고하시면 질문에 대한 이해에 도움이 될 것 같습니다.
“기본형 참조형 관련 질문”에 대한 답변 URL입니다. 해당 내용을 참고하여 질문에 대한 해답을 얻으실 수 있습니다.
이 답변에서는 메서드가 종료될 때 지역 변수인 참조형 변수는 사라지지만, new로 생성된 객체 인스턴스는 메모리에 남아 있으며, 반환된 참조값을 통해 계속 접근할 수 있다고 설명하고 있습니다.
도움이 되셨길 바랍니다.