1. 개념
2. 이벤트 당첨자에게 발송되는 초대장을 구현
3. 초대장을 보관하는 가방
4. 관람객
5. 소극장을 입장하기 위한 매표소
6. 매표소에서 일하는 판매원
7. 애플리케이션 핵심 클래스()
8. 소극장을 구현하는 Theater
1. 개념
- 소극장의 홍보 겸 작은 이벤트를 기획하기로 함.
- 이벤트의 내용은 추첨을 통해 선정된 관람객에게 공연을 무료로 관람할 수 있는 초대장 발송
- 소극장 앞
- 초대장을 쥐고 입장을 기다리는 이벤트 당첨자
- 표를 구매하려는 일반 관람객으로 구분.
- 소극장 앞에 서 있는 이벤트 당첨자와 일반 관람객을 다른 방식으로 입장 시켜야 함.
- 이벤트 당첨자
- 초대장을 티켓으로 교환한 후 입장할 수 있다.
- 일반 관람객
- 입장 시키기 전
- 이벤트 당첨 여부를 확인해야 함.
- 이벤트 당첨자가 아닌 경우에는 티켓 구매 후 입장 시켜야 함.
2. 이벤트 당첨자에게 발송되는 초대장을 구현
2-1) Invitation

2-2) Ticket

3. 초대장을 보관하는 가방
3-1) 가방의 변수들
- 초대장과 티켓 소유 여부 체크
- 초대장을 티켓으로 교환하는 메서드
- 가방에 소지하고 있는 현금 증가와 감소하는 메서드

3-2) 가방의 객체 상태

4. 관람객

5. 소극장을 입장하기 위한 매표소
5-1) 개념
-
소극장에 입장하기 위해 매표소에서 초대장을 티켓으로 교환하거나 구매해야 한다.
매표소에는 관람객에게 판매할 티켓의 판매 금액이 보관돼 있어야 한다.
-
판매하거나 교환해 줄 티켓의 목록과 판매 금액을 인스턴스 변수로 포함해야 한다.
5-2) TicketOffice

6. 매표소에서 일하는 판매원
6-1) 개념
- 초대장을 티켓으로 교환해주거나 티켓을 판매하는 역할을 수행한다.
- 판매원을 구현한 클래스에는 자신이 일하는 매표소를 알고 있어야 함.
6-2) TicketSeller
