将类型布尔值转换为对象数组,尝试理解逻辑

时间:2014-09-28 20:26:41

标签: java arrays object

所以我一直在为我的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,我会将数据分配给数组中的对象。我的两个问题是:

  1. 这个逻辑有意义吗?我不太熟悉使用类型布尔值,因此我不确定它是否会正确评估表达式。
  2. 有没有办法在方法分配中添加布尔返回类型并使其有效?
  3. 我的分配方法如下:

    public void assign(int quality, String name, int id, int numInStock, double price)
        {
            setQuality(quality);
            setToolName(name);
            setID(id);
            setNumberInStock(numInStock);
            setPrice(price);
        }
    

    我感谢任何帮助。现在整个事情让我很困惑,因为这不是我一般做事的方式,我们必须按照他指定的方式去做。谢谢大家!

1 个答案:

答案 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,因此您编写的行是编译时错误。你有没有检查一下编译器对你写的内容的看法?