0

为了使解释更容易,我将快速概述该程序。我应该创建一个“在线书店”。我有抽象类项目和 2 个子类,服装和教科书。一般来说,用户将首先用教科书或服装“填充”商店,然后“出售”物品,因为它们有存货。

主要是我创建了一个 Item (抽象)数组,它将包含 Textbook 和 Apparel 类型的对象,就像“商店”一样。尝试访问数组时出现了我的问题。

例如,当“销售”一个项目时,用户输入他们想要购买的书的标题。我必须验证这个标题是否“有货”(即在 Item 数组中)

这是我购买这本书的方法(我是商店中的物品数量,商店是抽象数组,你可以看到它不完整。我被困在 if 语句上)

public static void buyBook(Item[] store, int i)
{
    TextBook book = new TextBook();

    String title;
    title = JOptionPane.showInputDialog("Book title: ");

    for(int j = 0; j < i; j++)
    {
        if(store[j] instanceof TextBook)
        {
            if()
        }
}

我的想法是将标题(用户的输入)与商店中的教科书类型(抽象数组)进行比较,我知道它是错误的,但类似于:

store[j].getTitle().compareTo(title)

但是当然 store[j] 不能访问 getTitle (因为它在 TextBook 的子类中)

现在我完全被困住了。一些指导将不胜感激。

4

1 回答 1

3

沮丧是你的朋友。((TextBook)store[j]).getTitle().compareTo(title)另外,为什么不使用 for-each?for (Item item : store) if (item instanceof TextBook) ...

于 2012-05-04T21:54:02.610 回答