java實(shí)現(xiàn)網(wǎng)上購物車程序
用java代碼寫一個簡單的網(wǎng)上購物車程序,供大家參考,具體內(nèi)容如下
需求:
1、寫一個商品類,有商品編號、商品名稱、商品分類、商品單價(jià)屬性。
2、寫一個商品條目信息類,有商品和數(shù)量兩個屬性,有商品總價(jià)格方法。
3、寫一個購物車類,有添加商品方法、查看訂單信息,刪除商品,修改商品,清空購物車,求購物車中所有商品總金額方法。4、寫一個測試類,測試上述方法。
商品類:
public class Product { private int productId;// 商品編號 private String productName;// 商品名稱 private String category;// 商品分類 private double price;// 單價(jià) public Product() {// 無參構(gòu)造 super(); } public Product(int productId, String productName, String category, double price) { super(); this.productId = productId; this.productName = productName; this.category = category; this.price = price; } public String toString() { return "Product [productId=" + productId + ", productName=" + productName + ", category=" + category + ", price=" + price + "]"; } public int getProductId() { return productId; } public void setProductId(int productId) { this.productId = productId; } public String getProductName() { return productName; } public void setProductName(String productName) { this.productName = productName; } public String getCategory() { return category; } public void setCategory(String category) { this.category = category; } public double getPrice() { return price; } public void setPrice(double price) { this.price = price; } }
商品條目信息類:
public class ProductItem { private Product product;//購買的商品 private int count;//商品數(shù)量 public double totalMoney(){//小計(jì) double price=product.getPrice();//獲取商品單價(jià) return price*count; } public ProductItem() { super(); } public ProductItem(Product product, int count) { super(); this.product = product; this.count = count; } public Product getProduct() { return product; } public void setProduct(Product product) { this.product = product; } public int getCount() { return count; } public void setCount(int count) { this.count = count; } }
購物車類:
import java.util.Collection; import java.util.Iterator; import java.util.LinkedHashMap; import java.util.Map; public class ShoppingCart {//購物車 //key:商品編號 value:商品條目 private Map<Integer,ProductItem> map=new LinkedHashMap<Integer,ProductItem>(); public void addProduct(Product p){//添加商品 int productId=p.getProductId(); if(map.containsKey(productId)){ ProductItem productItem=map.get(productId); productItem.setCount(productItem.getCount()+1); }else{ map.put(productId, new ProductItem(p,1)); } } public void showAll(){//查看訂單信息 Collection<ProductItem> productItems = map.values(); Iterator<ProductItem> iterator = productItems.iterator(); while(iterator.hasNext()){ ProductItem productItem = iterator.next(); Product product = productItem.getProduct(); System.out.println("商品編號:"+product.getProductId()+",商品名稱:" +product.getProductName()+",單價(jià):"+product.getPrice()+",數(shù)量:"+productItem.getCount() +",小計(jì):"+productItem.totalMoney()); } } public boolean deleteProduct(int productId){//刪除商品 if(map.containsKey(productId)){ map.remove(productId); return true; } return false; } public boolean modifyProduct(int productId,int count){//修改 if(map.containsKey(productId)){ if(count>=1){ ProductItem productItem = map.get(productId); productItem.setCount(count); return true; }else if(count==0){//刪除該商品 deleteProduct(productId); return true; } } return false; } public void clearCart(){//清空購物車 map.clear(); } public double totalAllMoney(){//商品總錢數(shù) double total=0; Collection<ProductItem> productItems = map.values(); Iterator<ProductItem> iterator = productItems.iterator(); while(iterator.hasNext()){ ProductItem productItem = iterator.next(); double money=productItem.totalMoney(); total+=money; } return total; } }
測試類:
public class ShoppingCartTest { public static void main(String[] args) { ShoppingCart cart=new ShoppingCart(); Product p1=new Product(101,"華碩筆記本","筆記本",4599); Product p2=new Product(102,"蘋果","水果",5.9); Product p3=new Product(103,"彩電","家電",2799); Product p4=new Product(104,"秋褲","服裝",128); Product p5=new Product(105,"華為手機(jī)","手機(jī)",2998); Product p6=new Product(101,"華碩筆記本","筆記本",4599);//測試買兩件商品的情況 cart.addProduct(p1); cart.addProduct(p2); cart.addProduct(p3); cart.addProduct(p4); cart.addProduct(p5); cart.addProduct(p6); cart.showAll(); System.out.println("############"); boolean flag=cart.deleteProduct(p2.getProductId()); if(flag){ System.out.println("商品編號為:"+p2.getProductId()+"的商品刪除成功!"); }else{ System.out.println("刪除失敗"); } cart.showAll(); System.out.println("############"); boolean flag2=cart.modifyProduct(p3.getProductId(), 2); if(flag2){ System.out.println("商品編號為:"+p3.getProductId()+"的商品修改成功!"); }else{ System.out.println("修改失敗"); } cart.showAll(); //cart.clearCart(); //cart.showAll(); System.out.println("商品總價(jià)錢為:"+cart.totalAllMoney()); } }
運(yùn)行效果圖:
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- JavaWeb購物車項(xiàng)目開發(fā)實(shí)戰(zhàn)指南
- JavaWeb后臺購物車類實(shí)現(xiàn)代碼詳解
- eclipse的web項(xiàng)目實(shí)現(xiàn)Javaweb購物車的方法
- javaweb購物車案列學(xué)習(xí)開發(fā)
- java web開發(fā)之購物車功能實(shí)現(xiàn)示例代碼
- javaweb圖書商城設(shè)計(jì)之購物車模塊(3)
- java web開發(fā)之實(shí)現(xiàn)購物車功能
- java商城項(xiàng)目實(shí)戰(zhàn)之購物車功能實(shí)現(xiàn)
- JAVAEE中用Session簡單實(shí)現(xiàn)購物車功能示例代碼
- Java?web實(shí)現(xiàn)購物車案例
相關(guān)文章
Java中管理資源的引用隊(duì)列相關(guān)原理解析
這篇文章主要介紹了Java中管理資源的引用隊(duì)列相關(guān)原理解析,涉及到Java的垃圾回收機(jī)制方面的知識,需要的朋友可以參考下2015-12-12Spring?MVC和springboot靜態(tài)資源處理問題
這篇文章主要介紹了Spring?MVC和springboot靜態(tài)資源處理問題,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-08-08深入了解Java數(shù)據(jù)結(jié)構(gòu)和算法之堆
這篇文章主要為大家介紹了Java數(shù)據(jù)結(jié)構(gòu)和算法之堆 ,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助2022-01-01SpringBoot實(shí)現(xiàn)優(yōu)雅停機(jī)的正確方法
什么叫優(yōu)雅停機(jī)?就是向應(yīng)用進(jìn)程發(fā)出停止指令之后,能保證正在執(zhí)行的業(yè)務(wù)操作不受影響,直到操作運(yùn)行完畢之后再停止服務(wù)。本文就來和大家聊聊SpringBoot實(shí)現(xiàn)優(yōu)雅停機(jī)的正確姿勢,希望對大家有所幫助2023-01-01spring異步service中處理線程數(shù)限制詳解
這篇文章主要給大家介紹了關(guān)于spring異步service中處理線程數(shù)限制的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用spring具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧2019-09-09Java 讀取類路徑下的資源文件實(shí)現(xiàn)代碼
這篇文章主要介紹了Java 讀取類路徑下的資源文件實(shí)現(xiàn)代碼的相關(guān)資料,主要實(shí)現(xiàn)工具類代碼ResourceLoadUtil.java的實(shí)例需要的朋友可以參考下2017-07-07