Да, в файле .java может быть несколько классов. Максимум один из них может быть публичным. Другие являются частными. Они не могут быть частными или защищенными. Если один из них публичный, файл должен иметь имя этого класса. В противном случае НИЧЕГО можно дать этому файлу в качестве его имени.
Наличие множества классов внутри одного файла означает, что эти классы находятся в одном пакете. Поэтому любые другие классы, которые находятся внутри этого пакета, но не в этом файле, также могут использовать эти классы. Более того, когда этот пакет импортируется, импортирующий класс может также использовать их.
Для более подробного расследования, вы можете посетить мой блог в здесь .