The compiler has to have some way to find the .java files it needs to compile, and to link those .java files with the classes which are stored in them and required elsewhere. The makers of Java decided that the way to provide the link between the .java file and the Class name was to force them to be the same,
Because that's the way the language is designed. It's one of those things that's not worth thinking too much about - the language designers had various decisions to make, and this was what they decided. Why use semi-colons at the end of the line? Because that's how it works.
In addition to Matthew's post, it have something to do with abstraction. If we as the Java programmer had to worry about things like likes classes and files having the same name and what symbol to use at the end of the line to terminate a command(";" or "." or " ") programming in Java would be A LOT more complicated. It is abstraction that gives high-level languages the ease of programming we know as Java or PHP or Visual Basic programmers.
"If the facts don't fit the theory, get new facts" --Albert Einstein