所以我一直在为我的java课程开展一个项目,我的教授的指示对我来说似乎很奇怪。我们创建了一个对象数组(代表我们制作的类中的硬件工具,名为ToolItem),现在我们尝试使用我们当前要编写的新类文件中的方法插入,搜索,排序和删除此数组中的项,称为HardwareStore。
以下是插入方法的一小段说明,目前是什么让我感到高兴:
3)一个insert方法,它将anme,id,numberInStock,quality和baseprice作为参数,并返回-1表示duplcate id,0表示数组已满,正整数表示成功。它必须调用search来查明id是否已经在ToolItems数组中(如果是,则返回-1 - 不允许重复)否则,可以将新的ToolItem放在ToolItemArray的末尾。要将传入的TOOLID及其anme,numberInStock,quality和baseprice放入数组中,如果搜索没有找到它(不允许重复ID),请使用ToolItem assign方法分配值: boolean oK = ToolItems [numberOfToolItems] .assign(name,id,numberinstock,quality,price); 如果oK为真,则递增numToolItems并返回1
令我困惑的一句话是:
boolean oK =ToolItems[numberOfToolItems].assign(name, id, numberinstock, quality,price);
因为他从未指定如何编写"分配"方法mine基本上与非默认构造函数做同样的事情(它为每个私有数据成员调用set方法,并且"将它们分配给当前正在评估的数组中的对象)。为了使上面的语句工作,我将不得不添加一个返回类型的布尔值来分配,我不知道如何使用set方法。另一种选择是:
boolean oK = (boolean) toolArray[index].assign(quality, name, id, numInStock, price);
如果oK == true
,我会将数据分配给数组中的对象。我的两个问题是:
我的分配方法如下:
public void assign(int quality, String name, int id, int numInStock, double price)
{
setQuality(quality);
setToolName(name);
setID(id);
setNumberInStock(numInStock);
setPrice(price);
}
我感谢任何帮助。现在整个事情让我很困惑,因为这不是我一般做事的方式,我们必须按照他指定的方式去做。谢谢大家!
答案 0 :(得分:0)
如果ToolItem
包含assign
方法且toolArray
是一个ToolItem
s数组,那么就可以进行调用
boolean oK = toolArray[index].assign(arguments...);
不是编译时错误,assign
必须返回boolean
:
public boolean assign(arguments...) {
// Do things
if (condition)
return true
else
return false
}
至于实施,条件是老师指定的条件。很多时候方法返回一个布尔值来指示操作是否成功完成,
您的assign
返回void
,因此您编写的行是编译时错误。你有没有检查一下编译器对你写的内容的看法?