好的所以我刚刚发布了一个问题而且它太长了所以没有人完全阅读或试图提供帮助所以我删除了它,我将使这个问题更加具体,而不是一个漫无边际的故事。我只想帮助解决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所以请不要简单地将我链接到它(没有冒犯),因为我仍然无法理解这一点。非常感谢任何有关做什么的帮助。
答案 0 :(得分:2)
您需要编写一个名为Queue
isEmpty
,enqueue
,dequeue
和size
extend Vector
(或其他类似于Vector
)例如:
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
课程的所有功能,就可能更容易看到
Vector
函数来操作您已有的状态。(我故意在这里解决概念问题,而不是句法问题,因为这似乎是你问题的真正意义。)
答案 2 :(得分:1)
好吧,如果你的Queue可以扩展你选择的任何类,你可以只使用扩展的LinkedList,它已经实现了Queue功能。您只需要声明那些名称不同的方法(例如dequeue()和poll())。