如何使用Java遵循面向对象原则,在类图中详细设计一个包含私有属性、访问器方法和构造方法的货物购物系统的核心框架?
时间: 2024-10-27 08:09:43 浏览: 14
在Java中遵循面向对象原则设计一个简单的货物购物系统核心框架,我们可以按照以下步骤:
1. **创建`Item`类**:作为商品的基本模型,它通常包含私有属性如名称`name`,价格`price`等,这些属性应保持私有,以保护数据的安全性。
```java
private String name;
private double price;
public Item(String name, double price) {
this.name = name;
this.price = price;
}
// 访问器方法,提供读取属性值
public String getName() {
return name;
}
public double getPrice() {
return price;
}
```
2. **添加`Inventory`类**:作为仓库管理商品,它可以存储多个商品并提供对库存的操作。
```java
import java.util.ArrayList;
import java.util.List;
public class Inventory {
private List<Item> items;
public Inventory() {
this.items = new ArrayList<>();
}
// 添加商品到库存
public void addItem(Item item) {
items.add(item);
}
// 删除商品
public void removeItem(Item item) {
items.remove(item);
}
// 获取所有商品列表
public List<Item> getItems() {
return items;
}
}
```
3. **创建`ShoppingCart`类**:表示购物车,用于存储用户选购的商品及其数量。
```java
import java.util.HashMap;
import java.util.Map;
public class ShoppingCart {
private Map<Item, Integer> cart;
public ShoppingCart() {
this.cart = new HashMap<>();
}
// 添加商品到购物车
public void addItemToCart(Item item, int quantity) {
if (cart.containsKey(item)) {
cart.put(item, cart.get(item) + quantity);
} else {
cart.put(item, quantity);
}
}
// 从购物车移除商品
public void removeFromCart(Item item, int quantity) {
cart.put(item, cart.get(item) - quantity);
if (cart.get(item) == 0) {
cart.remove(item);
}
}
// 获取购物车内容
public Map<Item, Integer> getCartContents() {
return cart;
}
}
```
阅读全文