Почему каждый публичный класс находится в отдельном файле? (Секция 1)
Это вопрос, который мне часто задавали во время моих курсов. До сих пор у меня не было хорошего ответа на этот вопрос. В разделе 1 мы читаем: «Хотя каждая единица компиляции Oak может содержать несколько классов или интерфейсов, самое большее один класс или интерфейс на единицу компиляции может быть общедоступным».
На боковой панели объясняется, почему: «Это ограничение еще не применяется компилятором, хотя оно необходимо для эффективного импорта пакетов»
Это довольно очевидно - как и большинство вещей, когда вы знаете причины проектирования - компилятору придется сделать дополнительный проход через все модули компиляции (файлы .java), чтобы выяснить, где какие классы находятся, и это сделает компиляцию еще медленнее ,