[英]Need some assistance/suggestions with short java code
好的,所以我刚刚发布了一个问题,时间太长了,所以没人完全阅读它或试图提供帮助,所以我删除了这个问题,我将使这个问题更加具体,而不是一个漫不经心的故事。 我只想对Java程序中的类进行故障诊断。
这是该类(这是此分配所需的6个类之一)应该做的事情:
“编写一个完整的文档类Queue,它是Vector的子类(或您选择的任何类)。您的队列类应为isEmpty,enqueue,dequeue和size *定义操作,并定义一个空队列的构造函数。阅读通过Java API文档来找出哪些方法与入队和出队相同。请记住,您的队列将容纳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;
}
}
这是在评分标准中:
通过使用“扩展”和使用可用的Vector方法,将队列类正确定义为Vector的子类(Queue类中不应包含Vector的实例)。 可以使用任何其他类代替Vector。 [10点]
我看过向量api,所以请不要简单地将其链接到我(没有冒犯),因为我仍然很难理解这一点。 任何帮助做什么都非常感激。
您需要编写一个名为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();
}
// ...
}
作为记录,你不应该有一个实例Vector
在你的类。
正如Jakub所说,您将不必实现与Vector
的方法同名的方法(因此,继续删除isEmpty方法)。 例如,您将需要进行翻译的地方:
public void enqueue(Object o) {
// what method(s) could you use to simulate an enqueue of this object?
// Maybe `add(o)`?
}
也许您会觉得将新类(在这种情况下为Queue
视为正在扩展的类的包装或外观很有帮助。 如果要创建Queue
作为Vector
的子类,并且不对其进行任何其他操作,则它仍将具有Vector
所有状态和功能。 通过添加line
实例变量,您实际上就有了两个向量-一个是您继承的,另一个是您作为额外状态添加的。
一旦您认为新类继承了Vector
类的所有功能,可能会更容易看到
Vector
函数以对您已有的状态进行操作。 (我故意在这里处理概念性问题,而不是句法性问题,因为这似乎是您提出问题的重点。)
好吧,如果您的队列可以扩展您选择的任何类,则可以扩展已经实现了队列功能的LinkedList。 您只需声明名称不同的那些方法(例如dequeue()和poll())。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.