해결된 질문
작성
·
193
0
여기에서 실행 결과가 ImmutableAddress로 나오는데 왜 그런건가요??
선생님것을 보면 Address 클래스로 나오는데...
다시 삭제했다가 다시 만들어도 실행 결과에서 ImmutableAddress클래스로 나오는 이유를 모르겠습니다.
package lang.immutable.address;
public class MemberMainV1 {
public static void main(String[] args) {
Address address = new Address("서울"); // x005
MemberV1 memberA = new MemberV1("회원A", address); // x002
MemberV1 memberB = new MemberV1("회원B", address); // x003
// 회원A, 회원B의 처음 주소는 모두 서울
System.out.println("memberA = " + memberA);
System.out.println("memberB = " + memberB);
memberB.getAddress().setValue("부산");
System.out.println("부산 -> memberB.address");
System.out.println("memberA = " + memberA);
System.out.println("memberB = " + memberB);
===================================================================
-실행결과
memberA = MemberV1{name='회원A', address=ImmutableAddress{value='서울'}}
memberB = MemberV1{name='회원B', address=ImmutableAddress{value='서울'}}
부산 -> memberB.address
memberA = MemberV1{name='회원A', address=ImmutableAddress{value='부산'}}
memberB = MemberV1{name='회원B', address=ImmutableAddress{value='부산'}}
}
}
답변 2
0
MemberV1 및 address 클래스 를 봐야지 알 수 있을것 같네요.
MemberV1 의 값이 address의 값이 아니라 ImmutableAdrres의 값이 넘어온 것이 아닐까 추축 해봅니다.
-추가 toString의 "address" 가 아니라 ->"immutableAdrress"라고 적혀 있는것이 아닐지? 2번째 추측
근데 값은 다 2개다 부산으로 바꼇으니 toString을 잘못쓰쎴습니다