【问题标题】:Returning the cheapest item退回最便宜的商品
【发布时间】:2020-03-26 21:49:05
【问题描述】:

我对 Java 还很陌生,但我现在卡住的是我试图退回一件物品,但它会退回最便宜的物品。在我正在使用的书中,它说我必须“添加一个更便宜的方法,它需要另一个 StoreItem。它返回更便宜的项目,这个项目或传入的那个。”,我只是对你如何让它返回感到困惑最便宜的东西。

package cwk18;
import java.util.Collections;

    public class StoreItem {
       private String name;
       private double price;

    public StoreItem(){ // constructor
        name= "name unavailable";
        price = 1;
    }
    public StoreItem(String naming1,int val){ // parameterized construtor
        this();
        setName(naming1);
        setPrice(val);
    }
    public String getName(){ //name accessor
        return this.name;
    }
    public void setName(String newName){ // name mutator
        this.name = newName;
    }
    public double getPrice(){ // price accessor
        return this.price;
    }
    public void setPrice(int val){// price mutator
            this.price = val;
    }
    public void cheaper(StoreItem newItem){ 

    }

}

【问题讨论】:

  • 嗯,您必须将当前商品 (this.price) 的价格与传递给该方法的其他商品的价格进行比较。
  • 你需要一个返回类型。

标签: java return


【解决方案1】:

如果您说此功能是返回更便宜的商品。 函数不应该是void

但是'The object name'

public StoreItem cheaper(StoreItem newItem) \\before is public void cheaper(...
{ 
   if(this.price >newItem.getPrice())
   {
       return newItem;
   }
   else 
   {
       return this;  //this means return the current item
   }
}

【讨论】:

    【解决方案2】:

    首先,您需要将返回类型更改为:

        public void cheaper(StoreItem newItem){ 
    
        }
    

        public StoreItem cheaper(StoreItem newItem){ 
    
        }
    

    现在您只需要使用if statement 来比较作为newItem 传递的StoreItem 的价格与该类所代表的价格。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-01-22
      • 1970-01-01
      • 2020-08-12
      • 1970-01-01
      • 2023-04-08
      • 2020-05-08
      相关资源
      最近更新 更多