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

생각하는자님의 프로필 이미지
생각하는자

작성한 질문수

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

노드와 연결1

노드와 연결1 - 질문

해결된 질문

작성

·

64

·

수정됨

0

 학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.


1. 강의 내용과 관련된 질문을 남겨주세요.
2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.
(자주 하는 질문 링크: https://bit.ly/3fX6ygx)
3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.
(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)

질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.
=========================================
[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예/아니오)
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)

[질문 내용]
안녕하세요. 궁금증이 생겨 질문을 남깁니다.

노드와 연결1 노드를 배우면서 스트링 빌더의 append메서드가 생각이 났습니다.

그래서 중급1편에 배운 append메서드에 대해서 찾아보고 작동 방법에 대해서 찾아보고 자기 자신을 참조해서 스트링 빌더가 돌아가는것을 확인을 할수가 있었습니다.

image.png

이런 것 을 보고 노드가 '스트링 빌더 에서 파생된 작품?(응용) 아닌가' 라는 생각이 듭니다. 그래서 여기서 질문이

첫 번째

노드가, 스트링 빌더나, 메서드 체인닝 기법에서 파생된 작품인가요?

 

두 번째

스트링 빌더의 apeend의 this와, node의 new의 차이점이라고 할까요? 이런 것이 어떻게 다른지 비교해서 가르켜 주시면 안될까요?

뭔가 대조 되는 게 있는 것 같아서, 혹 이 두가지 가 대조가 가능하다면 대조 설명을 해주시면 감사하겠습니다.

 

추가1

다음 강의 에서 toString할때 스트링 빌더 및 append메서드가 나와서.. 좀 당황스럽기는 한데. 이거 때문에. 생각 난 것은 아닙니다.  

중급1편에서 스트링 빌더를 공부할 때

sb.append(내용).append(내용).append(내용);

first.next.next = new Node("C"); 이거랑 비슷해서 생각이 난거 입니다. 그래서 중급1편의 코딩 내용들을 뒤져본거고, pdf도 뒤져봤습니다.

image.png

증거 사진 이요..

 

답변 부탁 드립니다.

답변 1

1

안녕하세요. 생각하는자님, 공식 서포터즈 David입니다.

  1. 노드는 자기 자신이 아닌 내부에 노드 필드(next)를 두고 이에 접근하여 다음 노드와 현재 노드를 연결하고 있습니다. 말씀하신 것들과는 무관하다 생각합니다.

  2. append는 this를 반환함으로 동일한 StringBuilder를 반환하게 되고, Node의 next의 경우 현재 노드가 갖는 다음 노드를 반환하게 됩니다. 동일한 객체냐 아니냐 정도의 차이가 있다고 볼 수 있습니다.

아래 글도 참고하시면 좋을 것 같습니다:)

https://en.wikipedia.org/wiki/Method_chaining#cite_note-1

감사합니다.

David님 알켜 주시고, 가르쳐 주셔서 감사합니다.

생각하는자님의 프로필 이미지
생각하는자

작성한 질문수

질문하기