在Java中实现简单的仓库管理系统,核心是通过自定义对象封装仓库商品的相关属性,再借助集合容器存储这些对象,实现商品信息的增删改查等操作。整个过程不需要依赖外部数据库,仅用Java基础语法就能完成,非常适合用来练习Java面向对象和集合的使用。

核心实体对象设计
首先需要定义一个商品类,用来封装仓库中每个商品的基础信息,比如商品编号、名称、数量、单价等。这个类就是仓库管理系统的核心数据载体,所有商品信息都会以该类的实例对象形式存在。
/**
* 商品实体类,封装仓库商品的基础信息
*/
public class Product {
// 商品编号
private String productId;
// 商品名称
private String productName;
// 商品库存数量
private int stockCount;
// 商品单价
private double price;
// 无参构造方法
public Product() {
}
// 有参构造方法,方便初始化商品对象
public Product(String productId, String productName, int stockCount, double price) {
this.productId = productId;
this.productName = productName;
this.stockCount = stockCount;
this.price = price;
}
// 以下是所有属性的getter和setter方法
public String getProductId() {
return productId;
}
public void setProductId(String productId) {
this.productId = productId;
}
public String getProductName() {
return productName;
}
public void setProductName(String productName) {
this.productName = productName;
}
public int getStockCount() {
return stockCount;
}
public void setStockCount(int stockCount) {
this.stockCount = stockCount;
}
public double getPrice() {
return price;
}
public void setPrice(double price) {
this.price = price;
}
// 重写toString方法,方便打印商品信息
@Override
public String toString() {
return "商品编号:" + productId + ",商品名称:" + productName + ",库存数量:" + stockCount + ",单价:" + price;
}
}
仓库管理类设计
接下来需要设计一个仓库管理类,这个类内部使用ArrayList集合来存储所有的Product对象,因为ArrayList支持动态扩容,增删改查的操作也比较方便,适合作为临时的数据存储容器。该类会封装所有仓库管理的业务逻辑方法。
import java.util.ArrayList;
import java.util.List;
/**
* 仓库管理类,封装仓库的增删改查操作
*/
public class WarehouseManager {
// 使用ArrayList存储所有商品对象
private List<Product> productList;
// 构造方法中初始化集合
public WarehouseManager() {
this.productList = new ArrayList<>();
}
/**
* 添加商品到仓库
* @param product 要添加的商品对象
* @return 添加成功返回true,否则返回false
*/
public boolean addProduct(Product product) {
// 先检查商品编号是否已存在,避免重复添加
for (Product p : productList) {
if (p.getProductId().equals(product.getProductId())) {
System.out.println("商品编号已存在,添加失败");
return false;
}
}
productList.add(product);
System.out.println("商品添加成功");
return true;
}
/**
* 根据商品编号查询商品
* @param productId 要查询的商品编号
* @return 找到返回商品对象,否则返回null
*/
public Product getProductById(String productId) {
for (Product p : productList) {
if (p.getProductId().equals(productId)) {
return p;
}
}
System.out.println("未找到对应编号的商品");
return null;
}
/**
* 更新商品信息,这里以更新库存和单价为例
* @param productId 要更新的商品编号
* @param newStock 新的库存数量
* @param newPrice 新的单价
* @return 更新成功返回true,否则返回false
*/
public boolean updateProduct(String productId, int newStock, double newPrice) {
Product product = getProductById(productId);
if (product != null) {
product.setStockCount(newStock);
product.setPrice(newPrice);
System.out.println("商品信息更新成功");
return true;
}
return false;
}
/**
* 根据商品编号删除商品
* @param productId 要删除的商品编号
* @return 删除成功返回true,否则返回false
*/
public boolean deleteProduct(String productId) {
Product product = getProductById(productId);
if (product != null) {
productList.remove(product);
System.out.println("商品删除成功");
return true;
}
return false;
}
/**
* 查询所有商品信息
* @return 所有商品的列表
*/
public List<Product> getAllProducts() {
return productList;
}
}
测试运行示例
最后编写测试类,模拟仓库管理的实际使用场景,调用WarehouseManager的各个方法,验证功能是否正常。
public class WarehouseTest {
public static void main(String[] args) {
// 创建仓库管理对象
WarehouseManager manager = new WarehouseManager();
// 添加商品
Product p1 = new Product("P001", "笔记本", 100, 5.5);
Product p2 = new Product("P002", "钢笔", 200, 12.0);
manager.addProduct(p1);
manager.addProduct(p2);
// 查询所有商品
System.out.println("当前仓库所有商品:");
for (Product p : manager.getAllProducts()) {
System.out.println(p);
}
// 根据编号查询商品
System.out.println("n查询编号P001的商品:");
Product queryP = manager.getProductById("P001");
if (queryP != null) {
System.out.println(queryP);
}
// 更新商品信息
System.out.println("n更新P001商品的库存和单价:");
manager.updateProduct("P001", 150, 6.0);
System.out.println("更新后P001的信息:" + manager.getProductById("P001"));
// 删除商品
System.out.println("n删除P002商品:");
manager.deleteProduct("P002");
System.out.println("删除后所有商品:");
for (Product p : manager.getAllProducts()) {
System.out.println(p);
}
}
}
总结
这个简单的仓库管理系统完全基于Java的对象和集合实现,没有使用任何第三方框架或数据库。核心思路就是自定义实体类封装数据,用集合作为数据存储容器,再封装业务逻辑方法操作集合中的数据。你还可以根据需求扩展更多功能,比如增加商品分类、实现库存预警、添加数据持久化到文件等,进一步巩固Java基础知识的运用。