Class ShoppingCart

java.lang.Object
challenge.lv2.ShoppingCart

public class ShoppingCart extends Object
ShoppingCart 클래스는 장바구니 객체입니다. 장바구니가 가질 수 있는 속성들인 MenuItem 리스트와 각각의 물품 갯수를 저장하는 count 리스트, 가격을 계산하는 price리스트가 있습니다. 그 외에도 간단하게 get함수로 값을 얻기 위해 totalPrice, totalCount을 global로 사용합니다.
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    private final List<Integer>
    각 메뉴를 몇개씩 샀는지 저장하는 리스트
    private final List<MenuItem>
    장바구니 목록 리스트
    private final List<Integer>
    각 메뉴의 가격을 갯수에 맞게 저장하는 리스트
    private int
    장바구니 안에 들어간 메뉴의 개수
    private int
    최종 계산에서 쓰이는 합계 가격
  • Constructor Summary

    Constructors
    Constructor
    Description
    장바구니를 생성자
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    장바구니에 메뉴를 추가합니다.
    void
    할인 금액을 계산하고 출력.
    int
    장바구니에 들어간 메뉴의 가짓수를 제공합니다.
    int
    총 금액을 반환합니다.
    boolean
    orderMenu(int num)
    카테고리 화면에서 장바구니 관련 내용을 출력 만약 장바구니에 담긴 메뉴가 없다면 넘어가고, 있으면 카테고리 개수 +1에는 주문하기, +2에는 주문 취소하기를 출력합니다.
    void
    장바구니 목록을 출력합니다.
    void
    장바구니 수정 화면을 출력.
    void
    장바구니를 초기화합니다(안의 내용을 모두 비워줍니다.
    void
    setCartItem(int index)
    장바구니 수정 메서드

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

    • count

      private final List<Integer> count
      각 메뉴를 몇개씩 샀는지 저장하는 리스트
    • price

      private final List<Integer> price
      각 메뉴의 가격을 갯수에 맞게 저장하는 리스트
    • totalPrice

      private int totalPrice
      최종 계산에서 쓰이는 합계 가격
    • totalCount

      private int totalCount
      장바구니 안에 들어간 메뉴의 개수
  • Constructor Details

    • ShoppingCart

      ShoppingCart()
      장바구니를 생성자
  • Method Details

    • addCart

      public void addCart(MenuItem item)
      장바구니에 메뉴를 추가합니다.
      Parameters:
      item - 이 추가됩니다. 만약 같은 메뉴가 이미 담겨있다면 갯수와 가격 변동만 해줍니다.
    • getCartLength

      public int getCartLength()
      장바구니에 들어간 메뉴의 가짓수를 제공합니다.
      Returns:
      메뉴리스트의 길이를 리턴합니다.
    • printCart

      public void printCart()
      장바구니 목록을 출력합니다. 목록과 담겨있는 메뉴들의 총 금액도 출력합니다.
    • getTotalPrice

      public int getTotalPrice()
      총 금액을 반환합니다.
      Returns:
      총 금액
    • orderMenu

      public boolean orderMenu(int num)
      카테고리 화면에서 장바구니 관련 내용을 출력 만약 장바구니에 담긴 메뉴가 없다면 넘어가고, 있으면 카테고리 개수 +1에는 주문하기, +2에는 주문 취소하기를 출력합니다.
      Parameters:
      num - 출력하고 잇는 카테고리의 총 개수
      Returns:
      true - 장바구니 선택이 불가능한 경우 false - 장바구니 선택이 가능한 경우 (사용자 입력 바운더리를 나중에 조정)
    • applyDiscount

      public void applyDiscount(DiscountType discountType)
      할인 금액을 계산하고 출력.
      Parameters:
      discountType - 들어온 타입에 맞게 할인을 진행하고 총 금액을 조정합니다.
    • resetCart

      public void resetCart()
      장바구니를 초기화합니다(안의 내용을 모두 비워줍니다. totalPrice같은 경우 장바구니 목록에 들어가야지 볼 수 있는데, 목록에 들어갈때 새롭게 계산하기 때문에 초기화 필요가 없습니다.
    • printEditMenu

      public void printEditMenu()
      장바구니 수정 화면을 출력. 기존의 목록 출력과 다르게 앞에 사용자 입력을 받을 수 있게 번호가 붙습니다.
    • setCartItem

      public void setCartItem(int index)
      장바구니 수정 메서드
      Parameters:
      index - 를 가지는 menuList를 제거해주고 그것에 맞게 수량과 금액을 조정합니다.