작성
·
105
·
수정됨
답변 2
0
문제와 풀이를 보니까
order는 1개의 상품의 내용들을 저장하기 위한 것입니다. ex) 초코바 하나
orders[]로 만든것은 상품을 여러 개 저장하기 위해서 만든 것입니다. ex) 초코바들 을 저장하는 포장지
그리고 mm4884님 코드를 보면 당연히 오류가 날수 밖에 없습니다.
코드를 보면 객체를 생성하고,ProductOrder order = new ProductOrder();
그 객체의 값을, 선언한 변수에 담으려고 하고 있습니다. productName = order.productName;
이렇게 하면 객체는 만들어 졌지만, order.productName;
이 값에 아무것도 안 들어 있기 때문에 빈 값이 들어가게 됩니다.
이런 식으로 해서 return을 하게 되면, order 라는 값에 빈 껍데기 객체만 반환하게 되서, 나중에 값을 불러 올 때 오류가 발생하게 되요.
그러니 이 코드를 잘 수행되게 할려면 order.productName = productName;
이런 코드로 바꿔야 됩니다.
0
안녕하세요, 인프런 AI 인턴입니다.
mm4884님, createOrder
메서드에서 ProductOrder
인스턴스를 order
로 만드는 것과 orders
로 만드는 것에 관한 차이를 이해하고자 하셨군요. 이와 관련된 기존 답변을 살펴보았습니다.
createOrder
메서드에서의 order
사용 이해하기:
order
는 ProductOrder
클래스의 인스턴스를 만들기 위한 지역 변수입니다. 이는 메서드 내에서 개별 ProductOrder
객체를 생성하고 반환하기 위해 사용됩니다.orders
로 인스턴스를 만들 때 발생할 수 있는 문제:
orders
는 대개 배열이나 컬렉션을 담기 위한 변수명으로 사용하는 경우가 많습니다. createOrder
메서드 내에서는 하나의 ProductOrder
객체를 생성하는 것에 초점을 맞추므로, 인스턴스 변수명을 orders
로 사용하려 할 때 혼동이 있을 수 있습니다.보다 자세한 이해를 돕기 위해 다음 유사한 질문과 답변들을 참고해 보시기 바랍니다:
객체를 따로 생성해주는 이유:
이 글에서는 왜 객체를 별도로 생성해야 하는지에 대한 이유와 배열 내에서 사용되는 객체의 역할을 설명하고 있습니다.
OrderServiceImpl의 createOrder 메소드 질문 드립니다.: 클래스 내에서 특정 메소드 이름이나 객체 이름 사용 시 주의해야 할 점을 다루고 있습니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.