设计购物车

对象结构

CartItem

购物车项对象

放在domain包中

  1. 三个属性

    1. Route route商品对象

    2. Integer num数量

    3. Double subTotal小计

  2. 使用@Data注解

  3. 修改getSubTotal()方法

    计算结果 = 线路价格 * 数量

    返回计算结果

package com.it.travel.domain;

import lombok.Data;

/**
 * 购物车每一项
 */
@Data
public class CartItem {

    private Route route; //商品对象
    private Integer num;  //数量
    private Double subTotal; //小计

    //计算小计的金额
    public Double getSubTotal() {
        this.subTotal = num * route.getPrice();
        return subTotal;
    }
}

Cart

  1. 添加@Data注解

  2. 属性

    1. Integer cartNum 购物车数量

    2. Double cartTotal 购物车总金额

    3. LinkedHashMap<String, CartItem> cartItemMap 购物项集合,使用rid做为键 注:这里要创建集合对象

  3. 重写购物车数量getCartNum()方法

    1. 将购物车数量清0

    2. 遍历购物项集合,得到每个购物项

    3. 获取购物项的数量进行累加

    4. 返回累加的值

  4. 重写购物车总金额getCartTotal()方法

    1. 将购物车总金额设置为0

    2. 遍历购物项集合

    3. 累加每一项的金额

    4. 返回总金额

package com.it.travel.domain;

import lombok.Data;

import java.util.LinkedHashMap;

/**
 * 购物车
 */
@Data
public class Cart {

    private Integer cartNum; //购物车数量
    private Double cartTotal; //购物车总金额
    //购物项集合,使用rid做为键,注:这里要创建集合对象
    private LinkedHashMap<String, CartItem> cartItemMap = new LinkedHashMap<>();

    //计算总数量
    public Integer getCartNum() {
        this.cartNum = 0;
        //遍历集合累加所有项的数量
        for (CartItem cartItem : cartItemMap.values()) {
            this.cartNum += cartItem.getNum();
        }
        return cartNum;
    }

    //计算总金额
    public Double getCartTotal() {
        this.cartTotal = 0d;
        //遍历集合累加所有项的小计
        for (CartItem cartItem : cartItemMap.values()) {
            this.cartTotal += cartItem.getSubTotal();
        }
        return cartTotal;
    }
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值