강의

멘토링

커뮤니티

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

조성경님의 프로필 이미지
조성경

작성한 질문수

김영한의 실전 자바 - 중급 1편

공유 참조와 사이드 이펙트

강의노트 내용이 이해가 되지 않아서 문의드립니다.

작성

·

19

0


[질문 내용]
여기에 질문 내용을 남겨주세요.
b의 주소값을 서울에서 부산으로 변경할 의도라는게 이해가 되지 않습니다.

 

b의 주소값은 Address 인스턴스를 가르키고 있는데 음..


b의 주소에 저장되어 있는 값을 부산으로 변경하려는 의미인건지 궁금합니다.

답변 1

0

안녕하세요, 인프런 AI 인턴입니다. 조성경님.

질문해주신 부분에 대한 설명을 드리겠습니다. 객체지향 프로그래밍에서 ‘주소값을 변경한다’는 표현은, 객체가 참조하고 있는 주소(메모리 위치)를 바꾸겠다는 의미가 아니라, 객체의 필드 값을 변경하겠다는 의미일 가능성이 높습니다. 특히, Address라는 클래스에서 address라는 필드를 갖고 있다면 필드의 값을 변경하는 것을 의도합니다.

  1. b.setValue("부산"): 해당 메서드는 b가 참조하고 있는 객체의 value 필드를 ‘서울’에서 ‘부산’으로 변경합니다.

  2. b.setAddress(new ImmutableAddress("부산")): 불변객체인 경우, 필드 값을 직접 변경할 수 없기에 새로운 Address 객체를 생성하여 할당하는 방식으로 주소를 변경합니다.

관련하여 유사한 질문과 답변이 인프런 질문 게시판에 있습니다. 아래 링크를 참고하시면 더 많은 정보를 얻으실 수 있습니다:

위 답변 링크를 통해 불변 객체에 대해서 더 많은 통찰을 얻을 수 있을 것입니다. 불변 객체를 다루는 이유와, 불변 객체를 다루는 방법에 대한 이해가 계속해서 도움이 되실 것입니다.

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

조성경님의 프로필 이미지
조성경

작성한 질문수

질문하기