Uma aplicação Java consiste em diversas classes, que podem estar em um arquivo fonte ou distribuídas entre vários arquivos fonte.
Um aplicativo Java possui uma classe principal, que é a classe que contém o método principal. O aplicativo Java inicia a execução a partir do método principal da classe principal.
Ao escrever um aplicativo Java, você pode escrever vários arquivos de origem Java, salvar os arquivos de origem Java envolvidos no aplicativo no mesmo diretório, compilá-los separadamente e obter os arquivos de bytecode exigidos pelo aplicativo Java e, em seguida, executá-los na classe principal.
Um programa Java pode armazenar as classes que utiliza em diferentes arquivos de origem ou pode armazenar as classes que utiliza em um arquivo de origem. As classes em um arquivo de origem podem ser usadas por vários programas Java.
Do ponto de vista da compilação, quando o programa precisa modificar uma determinada classe, ele só precisa recompilar o arquivo fonte onde a classe está localizada, e não há necessidade de recompilar os arquivos fonte onde outras classes estão localizadas, o que é muito benéfico para manutenção do sistema.
Perceber:
Embora possa haver diversas classes em um arquivo de origem Java, ainda é recomendado escrever apenas uma classe em um arquivo de origem Java.