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

권정익님의 프로필 이미지
권정익

작성한 질문수

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

섹션2 : 불편객체 - 예제

해결된 질문

작성

·

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

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

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

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

감사합니다.

0

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

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

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

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

권정익님의 프로필 이미지
권정익

작성한 질문수

질문하기