构造函数可以像方法一样执行操作吗?

时间:2016-02-21 06:16:37

标签: java arrays methods constructor

我做了一个功课,我真的遇到了这个问题。我们被告知创建一个构造函数,它接受一个字符串参数,将其转换为小写,并将其拆分为单独的单词。然后索引文档(如在搜索引擎中)。这个赋值旨在让我们知道一点关于搜索引擎如何运作。

我一直使用方法来执行此类操作,但现在问题是要求在constructor中执行此操作。我试了好几次而且没用。该作业还要求将不同的单词(在我将它们分割在constructor之后)存储在名为" Terms"的数组中,该数组还存储单词的频率。问题的另一部分是要求创建方法indexContent来填充proper大小的术语数组。

我希望三种信息能以某种方式相关,但我不知道。我需要帮助,特别是如我所提到的那样创建constructor。我甚至不知道constructors可以执行method类似的操作。我认为创建constructors来实例化对象,methods用于调用和执行操作。请有人解释一下。

1 个答案:

答案 0 :(得分:4)

是。 Constructor可以做所有事情作为一种方法。实际上,构造函数是隐式返回其类类型的方法。

例如:

// constructor in fact is return its class type
People a = new People("StackoverFlow");

constructor中存在一些限制,例如,在某些情况下您必须调用父的构造函数,但不能使用方法。

例如:

class Parent {
   public Parent(String parentName) {}
}

class Child extends Parent {
   public Child(String name) {
      // must call parent constructor. unlike normal method
      super(name);
      // do some other fancy stuffs here
   }
}

在你的作业中,Psuedocode将是:

class SearchEngine {
    // keyword after turn into lower
    private String lowerKeyword;

    // words is splitted by above keyword
    private String[] words;

    public SearchEngine(String keyword) {
        process(keyword);
    }

    private void process(String keyword) {
       // convert keyword to lower case and assign to lowerKeywords
       // convert keyword to separate words and assign to array words
       // index document
    }

    // or you can process your code directly in constructor
    public SearchEngine(String keyword, String someOtherParameter) {
       // convert keyword to lower case and assign to lowerKeywords
       // convert keyword to separate words and assign to array words
       // index document
    }
}

希望这有帮助:)