购物车模块这相关类创建 | 学习笔记

简介: 快速学习购物车模块这相关类创建

开发者学堂课程【Java Web项目实战2:图书商城购物车模块这相关类创建 】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/35/detail/776


购物车模块这相关类创建


内容简介:

一、购物车模块

二、创建相关类

三、购物车的结构

四、具体内容


一、购物车模块

  购物车存储

      ●保存在 session 中;

      ● 保存在 cookie 中,

      ●保存在数据库中。


二、创建相关类

image.png


购物条目=商品+数量

购物车=N个条目

class Cartltem{

private Book book;private int count;

}

class Cart{

key 为 bid ,即图书 id

private Map map;

//提供各种操作方法

}

 

三、购物车的结构

➢ CartItem 包含图书和数量

➢ Cart :包含一个 Map

 

四、具体内容

CartItem

1 package cn. itcast .bookstore. cart . domain;

2

3   /**

4   *购物车条目

5   * @param

6   * @return

7   */

8 public class CartItem {

9   private Book book;

10  }

11  *

12 */

13 public alass CartItem {

14        private Book book;// 商品

15         private int count;//数量

16

17    /**

18   *小计方法

19   * @return

20   * 处理了二进制误差问题

21    */

22   public double getSubtatal() {//小计方法,但它没有对应成员!

23         BigDecimal d1 = new BigDecimal (book.getPrice() + "");

24           BigDecimal d2 = new BigDecimal (count + "") ;

25           return d1 . multiply(d2) .doublevalue();

26       }

27

28       public Book getBook() {

29       return book;

30       }

31

32       public void setBook(Book book) (

33             this.book = book;


Cart

➢购物车模块:

◆添加购物车条目;

◆清空所有条目;

◆删除指定条目;

◆我的购物车 (按用户查询购物车)

  

1  package cn.itcast.bookstore.cart.domain;

2

3     import java.util. Collection;

4     import java.util .LinkedHashMap;

5     import java.util Map;

6

7   /**

8   *购物车类

9   * @author cxf

10  *

11  */

12 public class Cart {

13       private Map map = new LinkedHashMap0);

15

16

17   /*计算合计

18   *@return

19   */

20  public double getTotal() {

21    //合计=所有条目的小计之和

22    BigDecimal total = new BigDecimal ("0");

23   for (CartItem cartItem : map.values()) {

24    BigDecimal subtotal = new BigDecimal("+ cartItem.getsubtatal());

25     total = total.add (subtotal);

26     }

27      return total.doubleValue();

28   }

29

30      /**

31      *添加条目到车中

32      * @param cartItem

33      */

34     public void add (CartItem cartItem) {

35       if (map. containsKey (cartItem.getBook().getBid())) {//判断原来车中是否存在该条目

36         CartItem_ cartItem = map.get (cartItem.getBook() .getBid());//返回原条目

37        -cartItem.setCount (_ cartItem.getCount() + cartItem. getCount();//设置老条目的数量为,其自己数量的+新条目的数量

38      map.put (cartItem.getBook() .getBid(), cartItem);

39      }else {

40      map.put (cartItem. getBook().getBook()

,cartItem);

41          /**

42         *清空所有条目

43         */

44        public void clear (){

map.clear() ;

45        }

46        /**

47        *删除指定条目

48        *@param bid

49        */

50        public void clear ()

51map.remove(bid) ;

52        }

53        /**

54       *获取所有条目

55       *@return

56       */

57       public

58    Collection getCartItems (){

59       return map. values() ;

60      }

61  }

 

相关文章
|
12月前
|
JavaScript
Mock快速入门使用及组件构造首页2
Mock快速入门使用及组件构造首页2
75 2
|
11月前
|
JavaScript 前端开发
56dwr - 购物车案例(调用远程的 Cart 方法)
56dwr - 购物车案例(调用远程的 Cart 方法)
31 0
|
4月前
|
前端开发 fastjson
使用map传参,解决后台没有前台对应实体的类的情况
使用map传参,解决后台没有前台对应实体的类的情况
72 0
|
12月前
|
JSON 前端开发 JavaScript
Mock快速入门使用及组件构造首页1
Mock快速入门使用及组件构造首页1
76 1
|
11月前
|
前端开发 JavaScript Java
54dwr - 购物车案例(调用远程对象)
54dwr - 购物车案例(调用远程对象)
39 0
|
JavaScript 小程序 计算机视觉
记录一次小程序卡片组件封装的实战
来分析一下我这次所做项目的需求,首先重要的是卡片内部的布局需要卡片组件需要应用在两个场景下,每个场景的部分文本内容有区别,所以需要进行文本控制,而又要考虑到文本长度的问题,所以需要对文本内容进行一些处理,整理一下得出以下三个点
178 0
记录一次小程序卡片组件封装的实战
|
前端开发 测试技术 数据库
【测试平台开发】十七、接口编辑页面实现下拉级联选择,绑定接口所属模块
【测试平台开发】十七、接口编辑页面实现下拉级联选择,绑定接口所属模块
【测试平台开发】十七、接口编辑页面实现下拉级联选择,绑定接口所属模块
|
Java 开发者
后台分类模块之相关类之创建 | 学习笔记
快速学习后台分类模块之相关类之创建
|
Java Apache 开发者
图书模板之相关类的创建 | 学习笔记
快速学习图书模板之相关类的创建
|
SQL JavaScript 前端开发
订单模块之加载订单完成 | 学习笔记
快速学习订单模块之加载订单完成
110 0
订单模块之加载订单完成 |  学习笔记