This week's book giveaway is in the OCMJEA forum. We're giving away four copies of OCM Java EE 6 Enterprise Architect Exam Guide and have Paul Allen & Joseph Bambara on-line! See this thread for details.
It is just a requirement enforced by many Java compilers (javac included) ; it's not part of the language definition. It allows the compiler to find classes that it may need to compile while it's in the process of compiling another class. [ July 14, 2003: Message edited by: Ernest Friedman-Hill ]
Ernest is correct. This has been part of the language going all the way back to Oak. It is supposed to simplify dynamic compiling. If you are using a class in your class and that class hasn't been compiled yet, the compiler may be able to figure out where to look for it based on the source name.