java设计并实现购物车的逻辑存储,购买的若干商品和数量。包括商品的添加,删除,遍历输出及购物车的清空等方法。添加商品完成数量的累加;删除商品,如果商品在购物车中,按数量删除,如果剩余数量小于等于零,则删除这个商品。设计所需的构造函数和成员函数。编写主函数测试所写的功能。
时间: 2024-09-13 08:02:36 浏览: 35
在Java中设计一个购物车系统,我们可以定义一个`Product`类来表示商品,以及一个`ShoppingCart`类来管理商品和数量。下面是一个简单的实现示例:
首先是商品类`Product`:
```java
public class Product {
private String id; // 商品的唯一标识
private String name; // 商品名称
private double price; // 商品价格
public Product(String id, String name, double price) {
this.id = id;
this.name = name;
this.price = price;
}
// Getter和Setter方法
public String getId() {
return id;
}
public String getName() {
return name;
}
public double getPrice() {
return price;
}
@Override
public String toString() {
return "Product{" +
"id='" + id + '\'' +
", name='" + name + '\'' +
", price=" + price +
'}';
}
}
```
接下来是购物车类`ShoppingCart`:
```java
import java.util.HashMap;
import java.util.Map;
public class ShoppingCart {
private Map<Product, Integer> products = new HashMap<>(); // 存储商品及其数量
// 添加商品到购物车
public void addProduct(Product product, int quantity) {
if (product == null || quantity <= 0) {
return;
}
products.put(product, products.getOrDefault(product, 0) + quantity);
}
// 删除商品
public void removeProduct(Product product) {
products.remove(product);
}
// 根据商品名称删除商品
public void removeProductByName(String name) {
products.keySet().removeIf(product -> product.getName().equals(name));
}
// 清空购物车
public void clear() {
products.clear();
}
// 遍历输出购物车中的商品和数量
public void listProducts() {
for (Map.Entry<Product, Integer> entry : products.entrySet()) {
System.out.println(entry.getKey() + ", 数量: " + entry.getValue());
}
}
// 获取购物车中的商品数量
public int getProductQuantity(Product product) {
return products.getOrDefault(product, 0);
}
}
```
最后是主函数来测试这些功能:
```java
public class Main {
public static void main(String[] args) {
Product product1 = new Product("P001", "手机", 2999.99);
Product product2 = new Product("P002", "平板", 3999.99);
ShoppingCart cart = new ShoppingCart();
// 添加商品
cart.addProduct(product1, 2);
cart.addProduct(product2, 1);
// 输出购物车中的商品和数量
cart.listProducts();
// 删除一个商品
cart.removeProductByName("手机");
// 再次输出购物车中的商品和数量
cart.listProducts();
// 清空购物车
cart.clear();
// 输出购物车中的商品和数量,确认购物车已清空
cart.listProducts();
}
}
```
通过这个简单的示例,我们实现了一个基本的购物车功能,包括商品的添加、删除、遍历和清空操作。在实际应用中,购物车系统会更加复杂,可能还需要考虑用户管理、订单处理、支付集成等方面的功能。
阅读全文