我習慣於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