• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    해결됨

섹션2 : 불편객체 - 예제

24.04.23 13:26 작성 조회수 64

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

y2gcoder님의 프로필

y2gcoder

2024.04.23

안녕하세요. 권정익님, 공식 서포터즈 y2gcoder입니다.

제 생각에도 생각하는자님 말씀처럼 lang.immutable.address.AddresstoString()을 확인해봐야 할 것 같습니다.

확인해보시고 toString()을 다시 생성해보시겠습니까?

감사합니다.

0

생각하는자님의 프로필

생각하는자

2024.04.23

MemberV1 및 address 클래스 를 봐야지 알 수 있을것 같네요.

MemberV1 의 값이 address의 값이 아니라 ImmutableAdrres의 값이 넘어온 것이 아닐까 추축 해봅니다.

-추가 toString의 "address" 가 아니라 ->"immutableAdrress"라고 적혀 있는것이 아닐지? 2번째 추측

근데 값은 다 2개다 부산으로 바꼇으니 toString을 잘못쓰쎴습니다