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

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

开发者学堂课程【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 前端开发
56dwr - 购物车案例(调用远程的 Cart 方法)
56dwr - 购物车案例(调用远程的 Cart 方法)
33 0
|
3天前
|
Shell Linux Python
你知道创建模块都有哪些方式吗?
你知道创建模块都有哪些方式吗?
9 0
|
5月前
|
前端开发 fastjson
使用map传参,解决后台没有前台对应实体的类的情况
使用map传参,解决后台没有前台对应实体的类的情况
76 0
|
5月前
|
JavaScript
基础购物车功能
基础购物车功能
|
12月前
|
前端开发 JavaScript Java
54dwr - 购物车案例(调用远程对象)
54dwr - 购物车案例(调用远程对象)
41 0
|
JSON 前端开发 Java
基于Springboot外卖系统14:菜品新增模块+多个数据表操作+文件上传下载复用
后台系统中可以管理菜品信息,通过新增功能来添加一个新的菜品,在添加菜品时需要选择当前菜品所属的菜品分类,并且需要上传菜品图片,在移动端会按照菜品分类来展示对应的菜品信息 。
257 0
|
Java 开发者
后台分类模块之相关类之创建 | 学习笔记
快速学习后台分类模块之相关类之创建
|
Java Apache 开发者
图书模板之相关类的创建 | 学习笔记
快速学习图书模板之相关类的创建
|
开发者 Python
对象的创建流程|学习笔记
快速学习 对象的创建流程
119 0
对象的创建流程|学习笔记
|
SQL JavaScript 前端开发
订单模块之加载订单完成 | 学习笔记
快速学习订单模块之加载订单完成
112 0
订单模块之加载订单完成 |  学习笔记