/** 属于Sale类:
   * 从lineItem的单项金额计算交易总金额
   * @return 交易总额
   */
  public double calcTotal() {
    total = 0.0;
    Iterator i = lineItems.iterator();
    while (i.hasNext()) total += ((LineItem)i.next()).calcTotal();
    return total;
  }
  /** 属于LineItem类:
   * 计算当前项目的交易金额
   * @return 交易金额
   */
  public double calcTotal() {
    total = product.calcTotal(this);
    return total;
  }
  /** 属于Product类:
   * 计算指定数量的产品价值多少
   * @return 金额
   */
  public double calcTotal(LineItem li) {
    return amount * li.getQuantity();
  }
 
                   |