This week's book giveaway is in the OCPJP forum. We're giving away four copies of OCA/OCP Java SE 7 Programmer I & II Study Guide and have Kathy Sierra & Bert Bates on-line! See this thread for details.
It's required that any public outer class defined in a source file matches the name of the file. That the main method should be in a public class defined in a source file of the same name is nothing to do with whether every source file should have a matching public class defined, or any class defined at all. Though, if the source file doesn't define any classes, then it's not much use really.