コンストラクタが省略された場合は暗黙的に public なデフォルトコンストラクタが
定義されるのが言語仕様だよ。一度逆コンパイラでも使ってみな。

$ cat a/A.java
package a; public class A{}
$ cat b/B.java
package b; public class B { public static void main(String[] args){ new a.A(); } }
$ javac b/B.java
$ java b.B