This week's book giveaway is in the OCAJP forum. We're giving away four copies of OCA Java SE 8 Programmer I Study Guide 1Z0-808 and have Jeanne Boyarsky & Scott Selikoff on-line! See this thread for details.
The given answer B is nonsense. If you've transcribed it correctly, then evidently this mock exam was written by an unreliable author. Do not spend time worryng about what the author is telling you - it's wrong; the author was confused.
A top-level class is a class that is not nested in any way. In the code shown, there are two top-level classes, MyClass1 and MyClass2. These are considered top-level, regardless of the access modifier.
You may encounter discussion of "top-level nested classes" or "static inner classes", which used to be considered top-level. This information is old (from before 2001), and should be ignored if you hear it now, as it will be unnecessarily confusing. Top-level classes are not nested. Period.
The correct answer would be that the code does not compile because, if there is more than one top-level class in a file, only one may be public, and the rest must be package access (no access modifier).
"I'm not back." - Bill Harding, Twister
Joined: Jul 26, 2005
Before the error was
Now that I changed the protected modifier the class is compling. Swapna