0 added
0 removed
Original
2026-01-01
Modified
2026-03-10
1
<p>В языке программирования<strong>Kotlin</strong>пакеты представляют собой логический блок, объединяющий функционал. Это могут быть, к примеру, функции и классы, которые используются для решения схожих задач. В результате функции и классы, предназначенные для решения одной задачи, вы сможете поместить в один пакет, для решения другой задачи -- во второй пакет и т. д.</p>
1
<p>В языке программирования<strong>Kotlin</strong>пакеты представляют собой логический блок, объединяющий функционал. Это могут быть, к примеру, функции и классы, которые используются для решения схожих задач. В результате функции и классы, предназначенные для решения одной задачи, вы сможете поместить в один пакет, для решения другой задачи -- во второй пакет и т. д.</p>
2
<p>Чтобы определить пакет, используют ключевое слово<strong>package</strong>, после чего идет имя пакета:</p>
2
<p>Чтобы определить пакет, используют ключевое слово<strong>package</strong>, после чего идет имя пакета:</p>
3
<p>На практике определение пакета помещается в начало файла, в результате чего все содержимое файла рассматривается уже как содержимое пакета.</p>
3
<p>На практике определение пакета помещается в начало файла, в результате чего все содержимое файла рассматривается уже как содержимое пакета.</p>
4
<p>Давайте добавим в проект файл с названием<strong>email.kt</strong>:</p>
4
<p>Давайте добавим в проект файл с названием<strong>email.kt</strong>:</p>
5
<p>Теперь определим в файле следующий код:</p>
5
<p>Теперь определим в файле следующий код:</p>
6
<p>Итак, наш пакет называется "<strong>email</strong>". Данный пакет включает в себя класс<strong>Message</strong>, содержащий одно свойство --<strong>text</strong>. По сути, речь идет о классе, представляющем email-сообщение, причем свойство<strong>text</strong>-- это, соответственно, текст сообщения.</p>
6
<p>Итак, наш пакет называется "<strong>email</strong>". Данный пакет включает в себя класс<strong>Message</strong>, содержащий одно свойство --<strong>text</strong>. По сути, речь идет о классе, представляющем email-сообщение, причем свойство<strong>text</strong>-- это, соответственно, текст сообщения.</p>
7
<p>Кроме того, в пакете определена функция send(), условно отправляющая сообщение на определенный адрес.</p>
7
<p>Кроме того, в пакете определена функция send(), условно отправляющая сообщение на определенный адрес.</p>
8
<p>Представим, что нам надо задействовать функционал данного пакета в другом файле. Чтобы подключить пакетные сущности, нужно применить директиву<strong>import</strong>. На практике возможны разные способы подключения какого-нибудь функционала из пакета.</p>
8
<p>Представим, что нам надо задействовать функционал данного пакета в другом файле. Чтобы подключить пакетные сущности, нужно применить директиву<strong>import</strong>. На практике возможны разные способы подключения какого-нибудь функционала из пакета.</p>
9
<h6>Во-первых, мы можем подключить весь пакет в целом:</h6>
9
<h6>Во-первых, мы можем подключить весь пакет в целом:</h6>
10
<p>После названия пакета будет проставлена звездочка и точка, в результате чего импортируются все типы из пакета.</p>
10
<p>После названия пакета будет проставлена звездочка и точка, в результате чего импортируются все типы из пакета.</p>
11
<p>Для примера возьмем другой файл проекта<strong>app.kt</strong>, определяющий функцию<strong>main</strong>, и воспользуемся в нем функционалом пакета<strong>email</strong>:</p>
11
<p>Для примера возьмем другой файл проекта<strong>app.kt</strong>, определяющий функцию<strong>main</strong>, и воспользуемся в нем функционалом пакета<strong>email</strong>:</p>
12
<p>Так как в начале файла импортированы все типы из email-пакета, есть возможность использовать в функции<strong>main</strong>как класс<strong>Message</strong>, так и функцию<strong>send</strong>.</p>
12
<p>Так как в начале файла импортированы все типы из email-пакета, есть возможность использовать в функции<strong>main</strong>как класс<strong>Message</strong>, так и функцию<strong>send</strong>.</p>
13
<p>Консольный вывод будет следующим:</p>
13
<p>Консольный вывод будет следующим:</p>
14
<h6><strong>Во-вторых</strong>, есть возможность импортировать типы, которые определены в пакете, по отдельности:</h6>
14
<h6><strong>Во-вторых</strong>, есть возможность импортировать типы, которые определены в пакете, по отдельности:</h6>
15
<h2>Встроенные пакеты</h2>
15
<h2>Встроенные пакеты</h2>
16
<p>Также язык Kotlin имеет встроенные пакеты -- они подключаются по дефолту в любой Kotlin-файл:</p>
16
<p>Также язык Kotlin имеет встроенные пакеты -- они подключаются по дефолту в любой Kotlin-файл:</p>
17
<p>В результате, если надо будет использовать какие-либо типы, определенные в вышеуказанных пакетах, импортировать эти пакеты явным образом не надо будет.</p>
17
<p>В результате, если надо будет использовать какие-либо типы, определенные в вышеуказанных пакетах, импортировать эти пакеты явным образом не надо будет.</p>
18
<p><em>По материалам https://metanit.com/.</em></p>
18
<p><em>По материалам https://metanit.com/.</em></p>
19
19