В течении разработки приложения, количество кода и файлов становится все больше и больше. Программный код принято структурировать, чтобы повышать его читабельность и понимание другим разработчиками. Одной из единиц структуризации вашего кода являются пакеты.
Файлы на компьютере хранятся в папках, а программные файлы языка Java, как ни странно, тоже хранятся в папках (только называем мы их "пакеты").
Как можно заметить имя пакета всегда пишется в самом верху файла. Имена папок (пакетов) разделяются не привычными нам слэшами "/", а точками.
Полное имя любого класса состоит из двух частей:
- Имени пакета
- Имени класса
Например полное имя класса Main будет выглядеть ru.java.tutorials.Main, а полное имя класса String - java.lang.String.
Есть небольшой набор правил в наименовании пакетов, которых необходимо придерживаться:
- Минимальная вложенность пакетов должна быть не менее трех. (ru.java.tutorials - вложенность 3, java.lang - вложенность 2).
- Имя пакета должно начинаться с домена организации, которая занимается разработкой (таким образом обеспечивается уникальность классов и предотвращение коллизий имен в будущем). Домен записывается в обратном порядке. (Если домен google.com, то имя пакета должно начинаться с com.google)
- Недопустимы символы верхнего регистра.
- Если имя пакета сложное, то оно разделяется нижними подчеркиваниями (ru.java.tutorials.persistense_module)
Импорт пакетов
Если возникает необходимость воспользоваться каким-либо классом из внешнего пакета, его необходимо импортировать. Импорт решает проблему написания полного имени класса каждый раз в коде.
Чтобы каждый раз не писать java.lang перед именем класса Math, мы можем его импортировать.
В языке Java, существует один пакет, который по умолчанию импортируется в абсолютно все файлы - java.lang. Да, да... Мы можем этот import убрать и ничего не сломается, так как этот пакет будет импортирован автоматически.