Imagine the nightmare of trying to find a class' source file if you could name it anything you wanted... (without using an IDE that is.) Some one could save the "AccountInformation" class in a file named "FileSystemDeleteMechanism.java". And believe me, there are people that would do such crazy things if Java didn't prevent it. To me, it just one of those common sense rules they put into Java. And I for one am glad it is there.
subject: why public class should be stored in same filename as of class?