"Top-level nested class" is an old term for a static nested class. Calling this "top-level" was a bad idea in the first place, needlessly confusing (how can something be both nested and top-level?), and when Sun released the
Java Language Specification 2nd edition several years ago, they removed this odious bit of terminology. (Thank you, Sun.) That is also why the tutorial Edwin referenced does not mention the term. Unfortunately many books still exist which use the term, either because they're old, or the author(s) didn't realize the olde term had been removed from the language. So, any time you see the term "top-level nested class", just pretend they said "static nested class" or "static member class" instead.