导读:本期聚焦于小伙伴创作的《如何使用Java实现商品管理系统_Java对象封装项目解析》,敬请观看详情,探索知识的价值。以下视频、文章将为您系统阐述其核心内容与价值。如果您觉得《如何使用Java实现商品管理系统_Java对象封装项目解析》有用,将其分享出去将是对创作者最好的鼓励。

商品管理系统是常见的Java入门实战项目,核心是通过Java的面向对象特性实现商品信息的增删改查等基础操作,其中对象封装是保证代码可维护性的关键设计。合理的对象封装可以让商品相关的属性和操作集中管理,避免代码冗余。

如何使用Java实现商品管理系统_Java对象封装项目解析

一、项目需求分析

我们要实现的商品管理系统需要具备以下基础功能:

  • 商品信息的添加,包含商品名称、价格、库存、编号等核心属性
  • 商品信息的查询,支持按商品编号查询单个商品,也支持查询所有商品列表
  • 商品信息的修改,可调整商品价格、库存等信息
  • 商品信息的删除,根据商品编号移除对应商品数据

二、对象封装设计

对象封装是Java面向对象的三大特性之一,我们将商品相关的属性私有化,通过公共方法对外提供访问和修改的入口,既保证数据安全,也让代码结构更清晰。首先设计商品类Product,封装商品的核心属性。

2.1 商品类封装实现

商品类的属性全部设置为private私有访问权限,通过gettersetter方法控制属性的读写,同时重写toString方法方便后续打印商品信息。

// 商品类,封装商品相关属性和操作
public class Product {
    // 私有属性,外部无法直接访问
    private String productId;
    private String productName;
    private double price;
    private int stock;

    // 无参构造方法
    public Product() {
    }

    // 有参构造方法,方便快速创建商品对象
    public Product(String productId, String productName, double price, int stock) {
        this.productId = productId;
        this.productName = productName;
        this.price = price;
        this.stock = stock;
    }

    // getter方法,用于获取属性值
    public String getProductId() {
        return productId;
    }

    public String getProductName() {
        return productName;
    }

    public double getPrice() {
        return price;
    }

    public int getStock() {
        return stock;
    }

    // setter方法,用于修改属性值,可添加校验逻辑
    public void setProductId(String productId) {
        this.productId = productId;
    }

    public void setProductName(String productName) {
        this.productName = productName;
    }

    public void setPrice(double price) {
        if (price >= 0) {
            this.price = price;
        } else {
            System.out.println("价格不能为负数");
        }
    }

    public void setStock(int stock) {
        if (stock >= 0) {
            this.stock = stock;
        } else {
            System.out.println("库存不能为负数");
        }
    }

    // 重写toString方法,方便打印商品信息
    @Override
    public String toString() {
        return "商品编号:" + productId + ",商品名称:" + productName + ",价格:" + price + ",库存:" + stock;
    }
}

2.2 商品管理类设计

商品管理类负责维护商品列表,实现增删改查的核心业务逻辑,内部使用一个List集合存储所有商品对象,所有操作都围绕这个集合展开。

import java.util.ArrayList;
import java.util.List;

// 商品管理类,负责商品的核心业务操作
public class ProductManager {
    // 使用List存储所有商品对象,封装数据容器
    private List<Product> productList;

    public ProductManager() {
        productList = new ArrayList<>();
    }

    // 添加商品
    public void addProduct(Product product) {
        // 校验商品编号是否已存在,避免重复添加
        for (Product p : productList) {
            if (p.getProductId().equals(product.getProductId())) {
                System.out.println("商品编号已存在,添加失败");
                return;
            }
        }
        productList.add(product);
        System.out.println("商品添加成功");
    }

    // 根据商品编号查询商品
    public Product getProductById(String productId) {
        for (Product p : productList) {
            if (p.getProductId().equals(productId)) {
                return p;
            }
        }
        return null;
    }

    // 查询所有商品
    public List<Product> getAllProducts() {
        return productList;
    }

    // 修改商品价格
    public void updateProductPrice(String productId, double newPrice) {
        Product product = getProductById(productId);
        if (product != null) {
            product.setPrice(newPrice);
            System.out.println("价格修改成功");
        } else {
            System.out.println("未找到对应商品,修改失败");
        }
    }

    // 删除商品
    public void deleteProduct(String productId) {
        Product product = getProductById(productId);
        if (product != null) {
            productList.remove(product);
            System.out.println("商品删除成功");
        } else {
            System.out.println("未找到对应商品,删除失败");
        }
    }
}

三、功能测试

编写测试类验证商品管理系统的各项功能是否正常,测试过程中可以看到对象封装后的代码调用逻辑非常清晰。

public class ProductTest {
    public static void main(String[] args) {
        // 创建商品管理对象
        ProductManager manager = new ProductManager();

        // 添加商品
        Product p1 = new Product("P001", "笔记本电脑", 4999.0, 10);
        Product p2 = new Product("P002", "无线鼠标", 99.0, 50);
        manager.addProduct(p1);
        manager.addProduct(p2);

        // 查询所有商品
        System.out.println("所有商品列表:");
        for (Product p : manager.getAllProducts()) {
            System.out.println(p);
        }

        // 按编号查询商品
        System.out.println("n查询编号P001的商品:");
        Product queryResult = manager.getProductById("P001");
        if (queryResult != null) {
            System.out.println(queryResult);
        } else {
            System.out.println("未找到商品");
        }

        // 修改商品价格
        System.out.println("n修改P002商品价格:");
        manager.updateProductPrice("P002", 89.0);
        System.out.println(manager.getProductById("P002"));

        // 删除商品
        System.out.println("n删除P001商品:");
        manager.deleteProduct("P001");
        System.out.println("删除后所有商品列表:");
        for (Product p : manager.getAllProducts()) {
            System.out.println(p);
        }
    }
}

四、封装的优势总结

在这个商品管理系统中,对象封装带来了明显的优势:

  • 数据安全:商品的价格、库存等属性通过setter方法修改时可以添加校验逻辑,避免非法数据赋值
  • 代码复用:商品类的属性和操作方法统一封装,后续扩展其他功能时可以直接复用现有代码
  • 结构清晰:业务操作和数据定义分离,商品管理类只负责业务处理,商品类只负责数据存储,降低代码耦合度

通过这个简单的商品管理系统,可以直观理解Java对象封装的实际应用价值,后续还可以在此基础上扩展用户管理、订单管理等功能,进一步完善项目逻辑。

Java商品管理系统对象封装Java项目修改时间:2026-06-21 03:00:41

免责声明:​ 已尽一切努力确保本网站所含信息的准确性。网站内容多为原创整理与精心编撰,观点力求客观中立。本站旨在免费分享,内容仅供个人学习、研究或参考使用。若引用了第三方作品,版权归原作者所有。如内容涉及您的权益,请联系我们处理。
内容垂直聚焦
专注技术核心技术栏目,确保每篇文章深度聚焦于实用技能。从代码技巧到架构设计,为用户提供无干扰的纯技术知识沉淀,精准满足专业提升需求。
知识结构清晰
覆盖从开发到部署的全链路。AI、前端、编程、数据库、服务器、建站、系统层层递进,构建清晰学习路径,帮助用户系统化掌握开发与运维所需的核心技术。
深度技术解析
拒绝泛泛而谈,深入技术细节与实践难点。无论是数据库优化还是服务器配置,均结合真实场景与代码示例进行剖析,致力于提供可直接应用于工作的解决方案。
专业领域覆盖
精准对应开发生命周期。从前端界面到后端编程,从数据库操作到服务器运维,形成完整闭环,一站式满足全栈工程师和运维人员的技术需求。
即学即用高效
内容强调实操性,步骤清晰、代码完整。用户可根据教程直接复现和应用于自身项目,显著缩短从学习到实践的距离,快速解决开发中的具体问题。
持续更新保障
专注既定技术方向进行长期、稳定的内容输出。确保各栏目技术文章持续更新迭代,紧跟主流技术发展趋势,为用户提供经久不衰的学习价值。