학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.
1. 강의 내용과 관련된 질문을 남겨주세요.
2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.
(자주 하는 질문 링크: https://bit.ly/3fX6ygx)
3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.
(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)
질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.
=========================================
[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예/아니오)
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)
[질문 내용]
1. Order에서 생성메서드 구현한 부분입니다.
보통 [접근 제어자] [리턴타입] [메서드명] (파라미터..) { ... }
이렇게 작성해왔습니다.
여기서 static 과 Order는 어떤 기능을 하는지 궁금합니다.
static의 경우 이 생성메서드포함 Order도메인 내에서는
접근 가능하다는 것을 나타내는 걸까요?
public static Order createOrder(Member member, Delivery delivery, OrderItem... orderItems) {
2. Order에서 비즈니스 로직(주문 취소)한 부분입니다.
여기서 this가 어디서 넘어온 것일까요? 파라미터로 넘겨준 것이 없는데 혹시 자신을 나타내는 것일까요?
public void cancel() {
if(delivery.getStatus() == DeliveryStatus.COMP) {
throw new IllegalStateException("이미 배송완료된 상품은 취소가 불가능합니다.");
}
this.setStatus(OrderStatus.CANCEL); // this가 의미하는 것
for(OrderItem orderItem : orderItems) {
orderItem.cancel();
}
}