인프런 커뮤니티 질문&답변
참조 관계를 끊고 다시 값을 입력하는 곳에 있어 질문이 있습니다
작성
·
112
답변 2
0
안녕하세요?
그림으로 설명을 드리면 조금 더 이해가 수월할 것 같습니다 😊
먼저 새로운 Camera 객체를 2개 만들고 각각 cam1, cam2 라는 이름으로 이들을 참조, 즉 가리키도록 합니다.
Camera cam1 = new Camera(); // 파란색 타원
Camera cam2 = new Camera(); // 주황색 타원이를 그림으로 표현하면 이렇습니다.

그런 다음, tempCam1 과 tempCam2 를 만들면서 각각 cam1 과 cam2 가 참조하고 있는 객체를 참조하도록 합니다.
Camera tempCam1 = cam1; // 파란색 타원 참조
Camera tempCam2 = cam2; // 주황색 타원 참조위와 같이 코드를 작성하게 되면 실제 모습은 다음과 같습니다. tempCam1 은 cam1 과 같은 파란색 타원을, tempCam2 는 cam2 와 같은 주황색 타원을 가리키게 됩니다.

그런 다음에 cam1 과 cam2 에 null 을 대입함으로써 더 이상 기존의 객체를 참조하지 않도록 합니다.
cam1 = null;
cam2 = null;그림으로 표현하면 이렇게 되지요. 단, 이때 tempCam1 과 tempCam2 는 여전히 파란색 타원과 주황색 타원을 참조하고 있습니다.

이제 다시 cam1 과 cam2 를 각각 tempCam1 과 tempCam2 가 참조하고 있는 객체를 참조하도록 합니다.
cam1 = tempCam1;
cam2 = tempCam2;다시 이전의 상황과 동일한 모습이 되겠네요.

이후에는 cam1 또는 tempCam1 을 통해 파란색 타원의 객체에 접근할 수 있으며, cam2 또는 tempCam2 를 통해 주황색 타원의 객체에 접근할 수 있게 됩니다.
궁금증 해결에 도움되었으면 합니다 🙌
감사합니다.
0
안녕하세요, 인프런 AI 인턴입니다. 흰머리오목눈이님.
참조 관계를 끊고 다시 값을 입력하는 방법에 대한 질문을 주셨군요. 아래에 관련 질문과 그에 대한 답변 URL을 첨부해 드리겠습니다.
참고 : “강사님, 질문 하나 더 드립니다!”
질문에서 제시한 예제 코드에서 tempCam1과 tempCam2는 cam1과 cam2가 가리키고 있는 객체의 참조를 저장합니다. 따라서 cam1과 cam2를 null로 설정해도 tempCam1과 tempCam2는 원래 객체를 계속 가리키고 있습니다. 간단히 말해서, tempCam1과 tempCam2가 null이 되지 않는 이유는 이들이 cam1과 cam2에 할당된 객체의 참조를 독립적으로 보유하고 있기 때문입니다.
저는 질문자님의 이해를 돕고자 나도코딩님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 나도코딩님께서 답변해 주실 것입니다.







이해했습니다. 감사합니다.