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

hwanghsp님의 프로필 이미지
hwanghsp

작성한 질문수

실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발

주문, 주문상품 엔티티 개발

this, static

작성

·

318

1

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.

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();
}


}

답변 1

2

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

1. 자바 기본 문법 중 하나입니다. 구글에 java static, java return type으로 검색하시면 관련 내용을 찾아보실 수 있습니다.

2. 1번 질문과 동일합니다. java this로 검색하셔서 학습하시면 됩니다.

자바 기본 문법을 익히시고 본 과정을 수강하시면 학습이 더욱 수월하실거에요.

감사합니다.

hwanghsp님의 프로필 이미지
hwanghsp

작성한 질문수

질문하기