В одном файле можно создавать больше одного класса!
Главное условие успешной компиляции:
! В одном файле может быть только один public class
Может быть несколько ситуаций когда в одном файле можно создать несколько классов и это не вызовет ошибку компиляции:
1) Если не указывать для классов модификатор доступа вообще (оставить по умолчанию), то после компиляции будет создано столько файлов .class сколько вы объявите(без модификатора доступа) в исходном файле .java, при этом ошибки компиляции не возникнет.
2) Можно создавать множество внутренних классов (inner classes) внутри основного.
3) Можно создавать множество статических вложенных классов (static nested classes)
4) Можно создавать множество Внутренних классов-членов (member inner classes), которые бывают трёх видов:
- внутренние классы-члены (member inner classes);
- локальные классы (local classes);
- анонимные классы (anonymous classes).
5) В одном файле также можно объявлять множество абстрактных классов (abstract classes)
В общем, такая возможность есть! Но хорошим тоном является 1 класс - 1 файл