繁体   English   中英

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

[英]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的新类

  1. 使用isEmptyenqueuedequeuesize
  2. 您的班级应extend Vector (或其他类似于Vector东西)
  3. 您的类应使用扩展类的方法来实现四个必需的方法。

例如:

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类的所有功能,可能会更容易看到

  1. 您可能已经拥有了一些需要的功能,并且
  2. 您的新方法将调用Vector函数以对您已有的状态进行操作。

(我故意在这里处理概念性问题,而不是句法性问题,因为这似乎是您提出问题的重点。)

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM