접근제이자 문제2번 ShoppingCart 클래스 내 calculateTotalPrice 메서드 중 Item 인스턴스 생성 이유가 궁금합니다.
104
작성한 질문수 1
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.
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 객체 참조를 할당하는 부분에 대해 더 많은 정보를 제공합니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
질문있습니다
0
22
1
1번 문제 질문입니다.
0
28
1
음악플레이어 문제 중 코드질문
0
23
1
9장 상속 문제와 풀이 질문
0
35
1
강의 자료에 사소한 오타가 있습니다.
0
46
2
매서드 참조값 반환??
0
63
1
접근제어자 - 쇼핑카트 문제에서 상품출력 부분 메서드
0
66
1
자바 기본편 - .(dot)에 관한 질문입니다!
0
83
1
공부방법
0
72
2
상속관계에서 멤버 변수는 오버라이딩 되는 개념이 아닌가요?
0
79
1
static method 질문
0
62
1
캡슐화 문제풀이 ShoppingCart 요구사항에 문제가 있어보입니다. 피드백 주세요
0
93
1
Method1에서 Student 객체
0
71
1
3강 18. null 질문
0
65
1
this 와 super의 호출 순서는 부모-자식관계 떄문만인가요?
0
73
1
팩토리 메서드 패턴과 일반 생성자 사용의 장단점
0
95
1
문의
0
102
1
9장 상속 문제와 풀이 부분 궁금한게 있어서 질문드립니다
0
86
1
상속과 그에 따른 메모리 구조 질문
0
59
1
call메소드에서 멤버에 접근하는 방식을 이해 못 했습니다
0
72
1
수강기한
0
133
1
기본편 객체지향 프로그래밍에 대한 정의
0
84
1
섹션10 상속 메모리 구조 및 문제 관련 질문
0
85
1
추가 지식 학습
0
150
2





