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

코딩먹는하마님의 프로필 이미지
코딩먹는하마

작성한 질문수

스프링 핵심 원리 - 기본편

주문과 할인 도메인 개발

7분 53초 OrderServiceimpl 부분 질문입니다.

해결된 질문

작성

·

340

0

createOrder 메소드 return 값으로

return new Order(memberId, itemName, itemPrice, discountPrice);

위에 식을 전달했는데 new를 붙이는 이유가 궁금합니다.

new를 빼니 오류가 나더라구요

new연산자는 " 메모리(Heap 영역)에 데이터를 저장할 공간을 할당받고 그 공간의 참조값(reference value /해시코드)을 객체에게 반환하여 주고 이어서 생성자를 호출하게 된다."라고 배웠는데

여기서는 그냥 생성자호출용으로만 쓰인건지 궁금합니다.

그래서 new를 제거했을 때 오류가 나는 것은

Order생성자가 아니라 Order메소드를 호출한 것인 건지 궁금합니다.

답변 1

1

안녕하세요. 박희재님, 공식 서포터즈 David입니다.

new Order()는 Order 객체를 생성하는 명령입니다. 그 결과로 생성된 객체의 참조 값이 반환 됩니다.

new 키워드를 제거했을 때 오류가 발생하는 이유는 createOrder의 반환 타입과 맞지 않거나 Order()가 유효하지 않은 명령이라서 발생하는 오류일 것입니다.

감사합니다.

코딩먹는하마님의 프로필 이미지
코딩먹는하마

작성한 질문수

질문하기