我是一名来自德国的学生,所以可能为您的语言不好而感到抱歉。

我从讲师那里学习了Java基础知识,并且在理解上遇到了问题。
他已经教过我们有关OOP的基础知识,因此我知道如何生成所需类的对象,例如,使用ClassX myObject = new ClassX ();和类似的简单东西。

但是,现在在这个新练习中,我们必须创建一个工具,该工具可以可视化排序算法并分析复杂性。讲师告诉我们:

用户使用该工具的可能方式可能是:

SortingTool sTool = new SortingTool();
sTool.setInitData(10,false);
sTool.performExperiment(Algorithms.INSERTIONSORT);

我很确定他的意思是我们要创建一个名为Algorithms的类,并在其中构造一个最终的对象,如下所示:
public class Algorithms {

      public final static Algorithms INSERTIONSORT = new Algorithms ();

有人可以解释一下这是如何工作的吗?特别是performExperimentsTool类应该从对象INSTERTIONSORT获得什么。

谢谢大家!

最佳答案

可能是这样的

interface Algorithms {

  public static Algorithms INSERTION_SORT = new InsertionSort();

  void sort(List<Integer> data);
}

public class InsertionSort implements Algorithms {
    public void sort(List<Integer> data) {
        // do insertion sort
    }
}
sTool.performExperiment()应该看起来像这样
performExperiment(Algorithms algo) {
    algo.sort(data);
}

09-11 17:48