게시판 즐겨찾기
편집
드래그 앤 드롭으로
즐겨찾기 아이콘 위치 수정이 가능합니다.
자바 상속, Immutable 질문입니다 ㅠ
게시물ID : programmer_20797짧은주소 복사하기
작성자 : 고락셉
추천 : 0
조회수 : 461회
댓글수 : 9개
등록시간 : 2017/06/11 14:10:44
옵션
  • 본인삭제금지
최근에 자바 관련 문제를 푼 적이 있는데

처음부터 차근차근 개념을 확실히 다져놓지 않아서 그런지 많이 헷갈리더라구요 ㅠ

다시 공부를 하려고 하는데 조금 헷갈리는 개념이 있어서 질문드립니다..

1.PNG

처음에 p 객체에는 Parent가 반환되었고, 내부에 가지고 있는것도 Parent니까
Parent의 값 5 호출, 5를 반환하는 getValue가 실행된거고

밑의 c 객체는 Child가 담겨있는 Parent 객체를 받아서 c.a를 출력하면 Parent가 가진 값인 5가 나오고
c.getValue()를 하면 Child가 가진 getValue를 호출해서 10이 나오게 되는건가요?


그리고 Java의 Immutable에 대해서도 조금 헷갈리는게 있는데

Java는 파라미터로 받을때 주소를 받아서 넘기기 때문에

String a = "aaa"

라고 선언한 뒤 다른 함수에서 a를 받아서 a+="bbb" 라고 하면

aaabbb가 되는건줄 알았는데 아니더라구요

2.PNG

요렇게 aaa가 그대로 출력되던데 요거도 조금 이해가 안가네요 ㅠ

이건 String이 Immutable 객체라서 변경할수 없어서 그런건가요?
3.PNG

위의 코드가 정상적으로 bbbasdfs가 출력되는것은 Immutable 객체가 변경되는것이 아니라 
+=을 통해서 bbbasdfs를 가진 String이 리턴되어 bbb에 담겨 재할당되기때문에 값이 바뀌어 출력되는건가요..??




전체 추천리스트 보기
새로운 댓글이 없습니다.
새로운 댓글 확인하기
글쓰기
◀뒤로가기
PC버전
맨위로▲
공지 운영 자료창고 청소년보호