通常,构造函数如下所示
private int occurence;
private String content;
public Word(String content,int occurence)
{
this.content= content;
this.occurence = occurence;
}
但是我可以设置那些不直接分配给属性但需要计算属性值的参数吗?
例如,Article类中有一个名为calOccurence(String content)的方法,可以根据文章计算出现次数。那么我可以像这样构建构造函数吗?
public Word(String content, Article base)
{
this.content= content;
this.occurence = base.calOccurence(content);
}
如果 calOccurence 函数属于 Word 类,例如 calOccurence(String content, Article base) 呢?
public Word(String content, Article base)
{
this.content= content;
this.occurence = this.calOccurence(content, base);
}
看起来很奇怪,但我的队友写的代码就像上面这样。请问这样合理吗?
最佳答案
因为单词的出现如果没有 Article 就不可能存在,所以我认为最好从 Word 类中省略出现字段,而只在 Article 类中使用它。
类似这样的事情
public class Word {
String text;
Article article;
public Word(String text, Article article) {
this.text = text;
this.article = article;
}
// other code
}
public class Article
String content;
public Article(String content) {
this.content = content;
}
public int calOccurrence(Word word) {
// Calculate the occurrence of word.text in this.content
}
// other code
}
关于java - Java中构造函数的参数有什么要求吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26846367/