강의

멘토링

로드맵

Inflearn brand logo image

인프런 커뮤니티 질문&답변

mm4884님의 프로필 이미지
mm4884

작성한 질문수

김영한의 실전 자바 - 기본편

문제와 풀이

createOrder 메서드 생성 관련 질문

작성

·

105

·

수정됨

0

image.png

이 메서드를 만들 때 ProductOrder 인스턴스를 order로 만드는 것과 orders로 만드는 것에 어떤 차이가 있나요? orders로 만드니까 계속 오류가 나서요,,

 

productName에 order 인스턴스에 있는 product를 대입하는 게 아니라 order.productName에 productName을 대입하는 것인지도 궁금합니다

답변 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로 만드는 것에 관한 차이를 이해하고자 하셨군요. 이와 관련된 기존 답변을 살펴보았습니다.

  1. createOrder 메서드에서의 order 사용 이해하기:

    • orderProductOrder 클래스의 인스턴스를 만들기 위한 지역 변수입니다. 이는 메서드 내에서 개별 ProductOrder 객체를 생성하고 반환하기 위해 사용됩니다.
  2. orders로 인스턴스를 만들 때 발생할 수 있는 문제:

    • orders는 대개 배열이나 컬렉션을 담기 위한 변수명으로 사용하는 경우가 많습니다. createOrder 메서드 내에서는 하나의 ProductOrder 객체를 생성하는 것에 초점을 맞추므로, 인스턴스 변수명을 orders로 사용하려 할 때 혼동이 있을 수 있습니다.

보다 자세한 이해를 돕기 위해 다음 유사한 질문과 답변들을 참고해 보시기 바랍니다:

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

mm4884님의 프로필 이미지
mm4884

작성한 질문수

질문하기