The names of private inner classes are not visible outside the outer class. Public inner classes can be accessed as Outer.Inner which also keeps the global name space clean.