well, to be blunt and un-helpful
1- "because Sun made it that way."
But... to give a little bit more explanation:
2- Cause the
JLS says so
(real helpful there huh?)
How's this one -->
3- it wouldn't make sense to make a top-level class as
private -- how would you access it to run it? No other class could see it!
4- There's sorta no point to mark a top-level class as protected -- protected access gives you the same access as
default (package/friendly) but you can also see it from a sub-class. But how would that work when it's a top-level class that you're referring to?