A package
в Java - это пространство имен для классов, интерфейсов и перечислений.Имя пакета, точка и имя класса образуют полное имя класса класса:
com.example.hello.HelloWorldApplication
^--packagename--^ ^-----classname-----^
Точки в имени пакета имеют другое значение, чем точка между именами:первые две точки этого примера являются частью имени пакета , последняя - разделителем.
Об этом следует помнить, поскольку существует общее недопонимание относительно имен пакетов: просто потому, чтоНекоторые имена считают, что имена могут быть сопоставлены с иерархической структурой папок. Имена пакетов также имеют иерархию - это не так: hello
не является «подпакетом» example
!
Ночтобы создать простое сопоставление с папками и файлами, загрузчик классов может просто взять полное имя класса , заменить все точки косой чертой и добавить .class
, чтобы получить относительный путь к файлу класса.
Но еще раз отметим, что отображение папок / файлов не требуется для загрузки классов - мы можем изобрести загрузчик классов, который получает классы из базы данных или удаленной службы - сопоставление папок / файлов не сделаетсмысл в этом случае.