Введение в пакеты в Kotlin
Если в одном проекте окажутся два класса с одинаковым именем, компилятор не сможет понять, какой тип имеется в виду. Конфликт имён останавливает сборку программы. Чтобы такие ситуации не возникали, код группируют в пакеты - логические области с собственным префиксом имени.
Представьте сайт с разделами для пользователей и для
администратора. В папке users лежат классы
для пользовательской части, в admin - для
админки. И там, и там может понадобиться класс
Page, но это разные сущности: своя страница
у пользователя и своя у администратора.
Один из способов избежать путаницы - дать классам
разные длинные имена, например UsersPage и
AdminPage. Так можно, но имена быстро
разрастаются и хуже читаются.
В Kotlin принято другое решение: у каждого класса
есть полное имя - цепочка пакета и короткого
имени типа. Достаточно, чтобы пара «пакет + имя класса»
была уникальна в проекте. Тогда в разных пакетах
спокойно сосуществуют два класса Page:
users.Page и admin.Page.
Пакет задают в начале файла директивой package.
Чтобы использовать тип из другого пакета, его подключают
через import или указывают полное имя в коде.
В следующих уроках разберём объявление пакета, связь
с папками на диске, импорты и видимость объявлений
на уровне файла.