Inner classes like that are often private; they are considered as specifically supplying services to their enclosing class.
You are not simply creating an object of the inner class like that. You are also creating an instance of its surrounding class.
Static nested classes are often public; you can call new Outer.Inner(...)
You showed up just in time for the waffles! And this tiny ad:
Building a Better World in your Backyard by Paul Wheaton and Shawn Klassen-Koop