Kotlin в IntelliJ IDEA Kotlin змінні Kotlin типи даних Kotlin операції з числами Kotlin умовні вирази Kotlin умовні конструкції Kotlin цикли Kotlin послідовності Kotlin масиви Kotlin функціональне програмування Kotlin змінна кількість параметрів. Vararg Kotlin повернення результату. оператор return Kotlin однорядкові і локальні функції Kotlin перевантаження функцій Kotlin Лямбда-вирази Kotlin функції вищого порядку Kotlin Анонімні функції Kotlin ООП Класи і об'єкти Kotlin ООП властивості Kotlin ООП конструктор Kotlin ООП функції в класах Kotlin ООП Пакети та імпорт Kotlin ООП модифікатори видимості Kotlin ООП вкладені класи Kotlin ООП інтерфейси Kotlin ООП спадкування Kotlin ООП Перевизначення методів і властивостей Kotlin ООП Абстрактні класи та методи Kotlin ООП Data-класи Kotlin ООП перерахування enums Kotlin ООП Null і nullable-типи Kotlin ООП Обробка винятків Kotlin ООП перетворення типів Kotlin ООП Інфіксна функція Kotlin ООП функції розширення Kotlin ООП Узагальнені класи і функції Kotlin ООП обмеження узагальнень Kotlin ООП Варіантність, коваріантність і контраваріантність Kotlin Колекції. Змінювані і незмінні колекції Kotlin Колекції. LIST список Kotlin Колекції. Set Kotlin Колекції. Map

Kotlin ООП Пакети та імпорт


Пакети в Kotlin представляють логічний блок, який об'єднує функціонал, наприклад, класи і функції, які використовуються для вирішення близьких за характером завдань. Так, класи і функції, які призначені для вирішення однієї задачі, можна помістити в один пакет, класи і функції для інших завдань можна помістити в інші пакети.

Для визначення пакету застосовується ключове слово package , після якого йде ім'я пакета:

package account

Визначення пакета поміщається в самий початок файлу. І весь вміст файлу розглядається як вміст цього пакета.

Наприклад, додамо в проект новий файл account.kt :

І визначимо в ньому наступний код:

package account
 
fun transfer(from: Account, to: Account, sum: Int){
    if(from.sum >= sum){
        from.sum -= sum
        to.sum += sum
        println("Operation has been finished")
    }
    else
        println("Invalid operation")
}
 
class Account(var id: String, var sum: Int){
 
    fun displayInfo(){
        println("Account $id   Sum: $sum")
    }
}

Пакет називається account. Він містить клас Account, який представляє банківський рахунок і функцію transfer, яка емулює передачу коштів між двома рахунками.

Припустимо, ми хочемо використати функціонал цього пакета в іншому файлі. Для підключення сутностей з пакета необхідно застосувати директиву import . Тут можливі різні способи підключення функціоналу з пакета. Можна підключити в цілому весь пакет:

import account.*

Після назви пакета ставиться крапка і зірочка, тим самим імпортуються всі типи з цього пакета. Наприклад, візьмемо інший файл проекту - app.kt , який визначає функцію main, і використовуємо в ньому функціонал пакета account:

import account.*
 
fun main(args: Array<String>) {
 
    val acc1 = Account("123456", 5500)
    val acc2 = Account("456778", 4000)
 
    transfer(acc1, acc2, 2500)
    acc1.displayInfo()
    acc2.displayInfo()
}

Оскільки на початку файлу імпортовані всі типи з пакета account, то ми можемо використовувати клас Account і функцію transfer в функції main.

Консольний висновок даної програми:

import account.transfer
import account.Account

вбудовані пакети

Kotlin має ряд вбудованих пакетів, які підключають за замовчуванням в будь-який файл на мові Kotlin:

  • kotlin.*

  • kotlin.annotation.*

  • kotlin.collections.*

  • kotlin.comparisons.*

  • kotlin.io.*

  • kotlin.ranges.*

  • kotlin.sequences.*

  • kotlin.text.*

Тому якщо виникне необхідність використовувати якісь типи, певні в цих пакетах, то явно ці пакети не потрібно імпортувати.


Наш партнер:
beta test mp3 playlist downloader