Declaring Member Class Variables and Instantiating Them
<p>I'm used to C++, where you have to instantiate everything in the constructer, but a recent realization has made me very confused about java. I was just instantiating things in the constructer, and then I realized this syntax was valid:</p>

<pre><code>public class DebateCompetition {
    private boolean isAdvanced;
    ArrayList&lt;Debate&gt; debates = new ArrayList&lt;Debate&gt;(); //&lt;------
    ArrayList&lt;Team&gt; teams;
    ArrayList&lt;School&gt; schools;

    public void addSchool(School s) {
        schools.add(s);
    }
}
</code></pre>

<p>But that leaves a lot of questions. First: What does it do? Second: When is <code>new ArrayList&lt;Debate&gt;()</code> called? Third: Is this a best practice, or not?</p>
