java實(shí)現(xiàn)網(wǎng)上購物車程序
用java代碼寫一個(gè)簡單的網(wǎng)上購物車程序,供大家參考,具體內(nèi)容如下
需求:
1、寫一個(gè)商品類,有商品編號(hào)、商品名稱、商品分類、商品單價(jià)屬性。
2、寫一個(gè)商品條目信息類,有商品和數(shù)量兩個(gè)屬性,有商品總價(jià)格方法。
3、寫一個(gè)購物車類,有添加商品方法、查看訂單信息,刪除商品,修改商品,清空購物車,求購物車中所有商品總金額方法。4、寫一個(gè)測試類,測試上述方法。
商品類:
public class Product {
private int productId;// 商品編號(hào)
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:商品編號(hào) 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("商品編號(hào):"+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("商品編號(hào)為:"+p2.getProductId()+"的商品刪除成功!");
}else{
System.out.println("刪除失敗");
}
cart.showAll();
System.out.println("############");
boolean flag2=cart.modifyProduct(p3.getProductId(), 2);
if(flag2){
System.out.println("商品編號(hào)為:"+p3.getProductId()+"的商品修改成功!");
}else{
System.out.println("修改失敗");
}
cart.showAll();
//cart.clearCart();
//cart.showAll();
System.out.println("商品總價(jià)錢為:"+cart.totalAllMoney());
}
}
運(yùn)行效果圖:

以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- JavaWeb購物車項(xiàng)目開發(fā)實(shí)戰(zhàn)指南
- JavaWeb后臺(tái)購物車類實(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網(wǎng)絡(luò)編程實(shí)現(xiàn)的簡單端口掃描器示例
這篇文章主要介紹了Java網(wǎng)絡(luò)編程實(shí)現(xiàn)的簡單端口掃描器,涉及Java網(wǎng)絡(luò)編程Socket組建、swing組建及多線程相關(guān)操作技巧,需要的朋友可以參考下2018-04-04
Spring使用注解更簡單的讀取和存儲(chǔ)對(duì)象的方法
這篇文章主要介紹了Spring使用注解更簡單的讀取和存儲(chǔ)對(duì)象的方法,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2023-07-07
Java如何使用multipartFile對(duì)象解析Execl
本文介紹了如何使用Spring的MultipartFile類解析Excel文件(.xls和.xlsx),包括文件上傳、數(shù)據(jù)校驗(yàn)、輸入流獲取、文件解析、數(shù)據(jù)保存和異常處理的詳細(xì)步驟2025-02-02
Maven項(xiàng)目引用第三方j(luò)ar包找不到類ClassNotFoundException
這篇文章主要為大家介紹了Maven項(xiàng)目引用第三方j(luò)ar包找不到類ClassNotFoundException解決及原因分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-07-07
IDEA自動(dòng)生成TestNG的testng.xml的插件方法
這篇文章主要介紹了IDEA自動(dòng)生成TestNG的testng.xml的插件方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-04-04
java 數(shù)據(jù)結(jié)構(gòu)與算法 (快速排序法)
這篇文章主要介紹了java 數(shù)據(jù)結(jié)構(gòu)與算法(快速排序法),,快速排序法是實(shí)踐中的一種快速的排序算法,在c++或?qū)ava基本類型的排序中特別有用,下面我們一起進(jìn)入文章學(xué)習(xí)更詳細(xì)的內(nèi)容吧,需要的朋友可以參考下2022-02-02
mybatis查詢結(jié)果返回至實(shí)體類的示例代碼
這篇文章主要介紹了mybatis查詢結(jié)果返回至實(shí)體類的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-07-07

