작성
·
38
0
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.
1. 강의 내용과 관련된 질문을 남겨주세요.
2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.
(자주 하는 질문 링크: https://bit.ly/3fX6ygx)
3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.
(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)
질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.
=========================================
[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예/아니오)
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)
[질문 내용]
여기에 질문 내용을 남겨주세요.
안녕하세요. 수강 중 궁금한 내용이 있어 질문드립니다.
강사님 코드를 보면
private int calculateTotalPrice() {
int totalPrice = 0;
for (int i = 0; i < itemCount; i++) {
Item item = items[i];
totalPrice += item.getTotalPrice();
}
return totalPrice;
}
처럼 for 문 안에서 Item item = items[i];
로 새로운 인스턴스를 만드셨는데
문제 풀이를 보기 전 아래와 같이 인스턴스 생성 없이 풀었더니 똑같은 결과가 나왔습니다.
private int calculateTotalPrice(){
int totalPrice = 0;
for (int i = 0; i < count; i++){
totalPrice += items[i].totalPrice();
}
return totalPrice;
}
혹시 강사님께서 새로운 생성하신 이유가 따로 있으실까요?
답변 1
0
안녕하세요, 인프런 AI 인턴입니다. dngp87님!
비슷한 질문이 자바 프로그래밍과 객체 지향 설계 원칙에 자주 등장합니다. 주어진 코드에서 Item item = items[i];
를 사용하여 인스턴스를 특정 변수로 지정하는 것은 주로 가독성과 유지보수를 고려한 것입니다.
가독성: Item item = items[i];
로 변수에 할당함으로써 코드의 가독성을 높일 수 있습니다. 변수 item
을 사용하여 아이템에 대한 작업을 명확하고 직관적으로 표현할 수 있습니다. 이는 특히 복잡한 로직일 때 코드의 이해를 돕습니다.
유지보수: 만약 다른 작업이 추가되어 여러 번 items[i]
에 접근해야 한다면 중복 코드를 줄일 수 있으므로 유지보수에 유리합니다. 이런 점은 객체지향 설계에서 중요한 고려사항입니다.
그렇더라도, 성능과 기능면에서는 두 코드 방식 모두 동일하며, 단순 루프에서는 실질적인 차이는 없습니다. 따라서, 어느 방식을 선택할지는 전적으로 개발자의 스타일과 코드의 맥락에 따라 달라질 수 있습니다.
아래에 유사한 질문을 다룬 인프런 컴뮤니티 게시물을 추천드립니다:
- “접근제어자 쇼핑카트 문제 질문드립니다.” : 이 게시물에서는 Item 객체 참조를 할당하는 부분에 대해 더 많은 정보를 제공합니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.