簡體   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