섹션2. 문제와 풀이
productOrderMain의 리펙토링 문제입니다.
문제에서
'static void printOrders(ProductOrder[] orders) 배열을 받아서
배열에 들어있는 전체 ProductOrder 의 상품명, 가격, 수량을 출력합니다.'
라고 하는데 배열을 받는 다는 게 뭔가요?
매개변수 자리에 배열을 놓고 호출할 때도 배열 변수를 놓는 게 뭘 불러오고 대입이 되는 건지 이해가 되지 않습니다.ㅠㅠ
저는 for each 문이 아니라 그냥 for문으로 풀어보려 했는데 메서드에 배열을 받는다는 게 뭔지 몰라서 그냥 for문으로 어떻게 풀어야할지 모르겠습니다.
printOrders(orders);static void printOrders(ProductOrder[] orders) {
for (ProductOrder order : orders) {
System.out.println("상품명: " + order.productName + ", 가격: " +
order.price + ", 수량: " + order.quantity);
}
}
답변 2
1
안녕하세요. 권정익님, 공식 서포터즈 David입니다.
어떤 메서드가 무엇을 받는다는 말은 메서드의 파라미터로 무언가를 전달받는다는 말입니다.
printOrders가 ProductOrder 배열을 받는다는 말은 printOrders가 ProductOrder 배열을 파라미터로 전달 받음을 뜻합니다.
printOrders(orders)는 orders 변수(배열)를 printOrders 메서드에 전달하여 printOrders를 호출하는 코드입니다.
잘 이해가 안 되신다면 각 코드가 무엇을 나타내는지 옆에 주석으로 적으며 흐름을 따라가 보시는 걸 추천드립니다.
static void printOrders(ProductOrder[] orders) {
// 동작 코드
}
public static void main(String[] args) {
ProductOrder[] ordres = new ProdcutOrder[10];
printOrders(orders);
}감사합니다.
0
좀 쉽게 비유를 하자면,
printOrders(내용 생략) -> 창고
ProductOrder[] orders -> 물통(6개씩 포장되있는거)
이라고 생각하시면 쉬울것 같네요.
"창고 안으로 물통을 받아서 물통 갯수를 세어본다."라고 생각해 보시는것은 어떻습니까?
그냥 메서드 안으로 코드가 들어갔지 동작 하는것은 똑같습니다.
- 모르겠으면 "자바 - 입문편" 에서 배열로 상품을 출력하시는것을 보고(복습) 오시는것을 추천 드립니다.
그리고 "배열이름.length"을 쓰시면 배열의 길이를 셀수 있습니다.
질문있습니다
0
28
1
1번 문제 질문입니다.
0
33
1
음악플레이어 문제 중 코드질문
0
27
1
9장 상속 문제와 풀이 질문
0
38
1
강의 자료에 사소한 오타가 있습니다.
0
50
2
매서드 참조값 반환??
0
66
1
접근제어자 - 쇼핑카트 문제에서 상품출력 부분 메서드
0
70
1
자바 기본편 - .(dot)에 관한 질문입니다!
0
85
1
공부방법
0
76
2
상속관계에서 멤버 변수는 오버라이딩 되는 개념이 아닌가요?
0
82
1
static method 질문
0
66
1
캡슐화 문제풀이 ShoppingCart 요구사항에 문제가 있어보입니다. 피드백 주세요
0
97
1
Method1에서 Student 객체
0
74
1
3강 18. null 질문
0
69
1
this 와 super의 호출 순서는 부모-자식관계 떄문만인가요?
0
76
1
팩토리 메서드 패턴과 일반 생성자 사용의 장단점
0
97
1
문의
0
104
1
9장 상속 문제와 풀이 부분 궁금한게 있어서 질문드립니다
0
90
1
상속과 그에 따른 메모리 구조 질문
0
62
1
call메소드에서 멤버에 접근하는 방식을 이해 못 했습니다
0
74
1
수강기한
0
136
1
기본편 객체지향 프로그래밍에 대한 정의
0
87
1
섹션10 상속 메모리 구조 및 문제 관련 질문
0
87
1
추가 지식 학습
0
153
2





