Constructor's Private scope
<p>Given this code snippet, could you explain why it woks?</p>

<p>The thing is that the class constructor is marked private, so should not it prevent us to call it with new operator?</p>

<pre><code>public class Alpha {
 protected Alpha() {}
}
class SubAlpha extends Alpha {
 private SubAlpha() {System.out.println("ok");}
 public static void main(String args[]) {
  new SubAlpha();
 }
}
</code></pre>

<p>It all works because the static method is part of the class and it can see all private fields and methods, right? Outside this "new" initialization would never work?</p>
