You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java如何编写接收Item数组、返回折扣后价格最低商品的方法

实现步骤说明

首先修正你现有代码的两处可正常编译的小问题:

  • Item类构造方法中属性赋值拼写错误:你定义的属性名为itemName,但构造方法里写的是this.ItemName = itemName,大小写不匹配会触发编译报错,需要修正为小写开头
  • main方法中Item = new Item[2]末尾缺少分号,同时数组变量名和类名重名不符合命名规范,建议修改为items

核心方法实现思路

你需要的getItemPrice方法逻辑很简单:遍历数组内所有Item对象,计算各自折扣后价格,迭代记录当前价格最低的对象即可,同时补充空数组判断避免空指针异常。

完整可运行代码

1. 修正后的Item类

public class Item {
    int ItemId;
    String itemName;
    double itemPrice;
    double itemDiscount;

    public Item(int ItemId, String itemName, double itemPrice, double itemDiscount) {
        super();
        this.ItemId = ItemId;
        this.itemName = itemName;
        this.itemPrice = itemPrice;
        this.itemDiscount = itemDiscount;
    }

    // 封装折扣后价格计算逻辑,符合面向对象封装规范
    public double getFinalPrice() {
        return itemPrice - itemDiscount;
    }

    // Getters and setters follow after this
    public int getItemId() {
        return ItemId;
    }

    public String getItemName() {
        return itemName;
    }

    public double getItemPrice() {
        return itemPrice;
    }

    public double getItemDiscount() {
        return itemDiscount;
    }
}

2. 包含目标方法和main方法的测试类

public class ItemTest {
    // 你需要的getItemPrice方法,因为要在静态main中调用,所以声明为static
    public static Item getItemPrice(Item[] items) {
        // 边界判断:空数组直接返回null避免报错
        if (items == null || items.length == 0) {
            return null;
        }
        // 先假设第一个元素为价格最低的商品
        Item minPriceItem = items[0];
        // 遍历剩余元素逐一比较
        for (int i = 1; i < items.length; i++) {
            Item currentItem = items[i];
            if (currentItem.getFinalPrice() < minPriceItem.getFinalPrice()) {
                minPriceItem = currentItem;
            }
        }
        return minPriceItem;
    }

    public static void main(String[] args) {
        Item[] items;
        items = new Item[2];
        items[0] = new Item(1, "Item One", 5, 2);
        items[1] = new Item(2, "Item Two", 10, 5);
        
        // 调用方法测试
        Item cheapestItem = getItemPrice(items);
        System.out.println("价格最低的商品ID:" + cheapestItem.getItemId());
        System.out.println("商品名称:" + cheapestItem.getItemName());
        System.out.println("折扣后价格:" + cheapestItem.getFinalPrice());
    }
}

运行结果

价格最低的商品ID:1
商品名称:Item One
折扣后价格:3.0

和你预期的返回Item 1的结果完全一致。

内容的提问来源于stack exchange,提问作者user17387633

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 20:36:07