Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Por que classes publicas precisam estar em arquivos separados?

Eu reparei que, para compilar classes publicas, aparece um erro dizendo que a classe x é publica e deve ser declarada em outro arquivo com a extensão java

Queria saber o motivo disso. Por que o mesmo não ocorre quando a classe não possui a palavra-chave "public" ?

2 respostas
solução!

Oi Raphael, tudo bom?

Segundo a especificação da linguagem, apenas uma classe publica pode ser declarada dentro de um arquivo =)

Além disso, esse arquivo deve ter o mesmo nome da classe. Além da extensão ".java"

Você pode encontrar o motivo disso na documentação. Vou citar aqui o trecho:

This restriction implies that there must be at most one such type per compilation unit. This restriction makes it easy for a compiler for the Java programming language or an implementation of the Java virtual machine to find a named class within a package; for example, the source code for a public type wet.sprocket.Toad would be found in a file Toad.java in the directory wet/sprocket, and the corresponding object code would be found in the file Toad.class in the same directory.

Ou seja, resumidamente, seguir este padrão facilita o processo de compilação do compilador =)

Ah sim, valeu =)