我想構建一個程序,當我們有一個int數組的視覺表示,而他們得到排序。將會有兩種不同的搜索算法可供選擇。所有的功能被分成類,接口和抽象類。我的主要問題是從一件事到另一件事獲取數據。Java:接口和抽象類的實現
我的主類實現了基本的窗口功能。繪製窗口,選擇搜索算法的幾個按鈕,提供一個文本字段來輸入一個數組,並在其中央顯示一個數組的條形圖可視化。 在延伸JComponent
的類中繪製條形圖。這也是我將數字字符串轉換爲int數組的地方。我已經可以繪製圖形,更改數組並將其繪製。
現在我有一個名爲Sorter
的接口,它提供了以下方法。
public void setUpTo(int i); // to limit the number of swaps during the search
public void setNumbers(int[] numbers);
public void sort();
public String getName();
public int getSwaps();
然後,我有抽象類CountingSort
實現Sorter
和類CountingBubbleSort
延伸CountingSort
。
這對我來說都很困惑。
在我的主類中,我聽一個按鈕傳遞TextField的內容並開始排序。 我需要做些什麼來通過CountingSort
獲得int數組到CountingBubbleSort
? 我已經實施CountingBubbleSort
。
讓我知道我需要提供哪些附加信息。
'CountingBubbleSort#setNumbers'? – nachokk
不知道我是否理解,但是,爲什麼不創建'CountingBubbleSort'的實例?然後調用該實例的'setNumbers(...)'(以及所有必需的方法)。 – Christian
應該只是創建一個CountingBubbleSort對象並調用setNumbers()方法。抽象類CountingSort的想法是爲排序功能提供一個標準接口,允許您從該抽象類派生幾種不同類型的排序對象。多態性允許您將所有各種派生類型視爲CountingSort對象,並且每個派生類型都將執行它們自己的特定排序實現。 –