• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    미해결

b1.appendModelName 까망이(최신형)

23.08.15 17:19 작성 조회수 169

0

 void appendModelName(String modelName) {
     this.modelName += modelName
 }

인데 어떻게 '까망이 + 까망이' 가 되는게 아니라

b1.appendModelName 에 있는 (최신형) 이 붙게 되는걸까요....? append가 인텔리제이에서 제공하는 어떤 함수 같은건가요???

답변 1

답변을 작성해보세요.

1

Ambition님의 프로필

Ambition

2023.08.15

append가 인텔리제이에서 제공하는 메소드같은 것이 아니라, 질문자님께서 정의하신appendModelName 메소드의 동작 코드가 그래서 그렇습니다.

자세히 설명드리자면,

메인함수에서 appendModelName의 인자에 어떤 것을 넣느냐에 따라 b1의 이름이 달라집니다. 즉, b1.modelName = "까망이"; 로 현재 Blackbox 클래스의 String modelName 필드의 값이 "까망이"로 초기화됬는데, 인자에 "(최신형)"을 넣으면 this.modelName = "까망이"에 인자값인 "(최신형)"을 더해서 까망이(최신형)의 값을 다시 필드에 초기화시켜준 것입니다.(필드의 값이 어떻게 초기화되는지는 디버깅을 통해 알 수 있습니다)

추가로, this는 현재 메인함수에서 생성된 인스턴스(실제 메모리에 잡힌 객체)를 일컫습니다. 여기서는 b1이라고 변수명을 지정했으니 b1이 this가 되는것입니다. 다시 질문자님의 appendModelName의 정의 부분을 풀어서 보면

this.modelName = this.modelName + modelName; 이 되고, 이를 인스턴스가 생성된 메인함수로 적용시켜보면

b1.modelName = "까망이" + "(최신형)"; 이 되어서 최종적으로 까망이(최신형)이 출력되어 나오는 것입니다.

와.. 훌륭한 답변 감사드립니다 ^^

hoje님의 프로필

hoje

질문자

2023.08.19

우와 설명듣고 강의 다시 보니까 뭘 놓치고 있었는지 확실히 알겠네요 감사합니다.