-
카테고리
-
세부 분야
프로그래밍 언어
-
해결 여부
미해결
b1.appendModelName 까망이(최신형)
23.08.15 17:19 작성 조회수 169
0
void appendModelName(String modelName) {
this.modelName += modelName
}
인데 어떻게 '까망이 + 까망이' 가 되는게 아니라
b1.appendModelName 에 있는 (최신형) 이 붙게 되는걸까요....? append가 인텔리제이에서 제공하는 어떤 함수 같은건가요???
답변을 작성해보세요.
1
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 = "까망이" + "(최신형)";
이 되어서 최종적으로 까망이(최신형)이 출력되어 나오는 것입니다.
답변 1