需要一些简短的java代码的帮助/建议

时间:2012-03-15 02:51:11

标签: java vector subclass

好的所以我刚刚发布了一个问题而且它太长了所以没有人完全阅读或试图提供帮助所以我删除了它,我将使这个问题更加具体,而不是一个漫无边际的故事。我只想帮助解决java程序中的一个类。

这是类(这是此分配所需的6个类之一)应该做的:

  

“编写一个名为Queue的完全记录的类,它是Vector的子类(或您选择的任何类)。您的队列类应该定义isEmpty,enqueue,dequeue和size *的操作,以及定义为空的构造函数阅读Java API文档以了解哪些方法与enqueue和dequeue相同。请记住,您的队列将保存Object类型的项目。   *“size”方法只返回队列中元素的数量“

以下是我为此课程编写的内容:

import java.util.Vector;

    public class Queue extends Vector {

Vector<Object> line;

public Queue() {

}

public boolean isEmpty() {
    if (line.isEmpty())
        return true;
    else
        return false;
}

public void enqueue(Customer customer) {
    line.addElement(customer);
}

public void dequeue() {
    line.removeElementAt(0);
}

public int size() {
    return elementCount;
}

}

这是在评分标准中:

  

通过使用“extends”和使用,将队列类正确地定义为Vector的子类   可用的Vector方法(Queue类中不应该有一个Vector实例)。可以使用任何其他类而不是Vector。 [10分]

我已经看过矢量api所以请不要简单地将我链接到它(没有冒犯),因为我仍然无法理解这一点。非常感谢任何有关做什么的帮助。

3 个答案:

答案 0 :(得分:2)

您需要编写一个名为Queue

的新课程
  1. 使用方法isEmptyenqueuedequeuesize
  2. 您的课程应extend Vector(或其他类似于Vector
  3. 的课程
  4. 您的类应该使用扩展类的方法来实现所需的四个方法。
  5. 例如:

    public class Queue extends Vector{
    
        // here you are implementing isEmpty
        public boolean isEmpty() {
            // ... by delegating to the method with the same name in the Vector class
            return super.isEmpty();
        }
    
        // ...
    
    }
    

    如文档所述,您在您的班级中有<{1}}的实例。

    正如Jakub所说,您不必实现与Vector中的方法具有相同名称的方法(因此请继续并删除该isEmpty方法)。你必须做一些翻译的地方,例如:

    Vector

答案 1 :(得分:2)

也许您会发现在这种情况下,将您的新类Queue视为您正在扩展的类的包装或外观会很有帮助。如果您要创建Queue作为Vector的子类而不对其执行任何其他操作,则它仍将具有Vector的所有状态和功能。通过添加line实例变量,您基本上有两个向量 - 一个是您继承的,另一个是您作为额外状态添加的。

一旦您认为您的新课程继承了Vector课程的所有功能,就可能更容易看到

  1. 您可能已经拥有了一些您需要的功能,
  2. 您的新方法会调用Vector函数来操作您已有的状态。
  3. (我故意在这里解决概念问题,而不是句法问题,因为这似乎是你问题的真正意义。)

答案 2 :(得分:1)

好吧,如果你的Queue可以扩展你选择的任何类,你可以只使用扩展的LinkedList,它已经实现了Queue功能。您只需要声明那些名称不同的方法(例如dequeue()和poll())。