我习惯于C++,在那里你必须实例化构造器中的所有东西,但最近的一个实现让我对java非常困惑。我只是实例化的东西在建筑工,然后我意识到这句法是有效的:声明成员类变量并实例化它们
public class DebateCompetition {
private boolean isAdvanced;
ArrayList<Debate> debates = new ArrayList<Debate>(); //<------
ArrayList<Team> teams;
ArrayList<School> schools;
public void addSchool(School s) {
schools.add(s);
}
}
但还有很多问题。首先:它有什么作用?第二:什么时候拨打new ArrayList<Debate>()
?第三:这是否是最佳做法?
请参阅http://stackoverflow.com/questions/4916735/default-constructor-vs-inline-field-initialization – flup 2013-04-26 23:39:03