我想构建一个程序,当我们有一个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对象,并且每个派生类型都将执行它们自己的特定排序实现。 –