JavaRush
AI Academy
new
Акція
Університет
Java FullStack
Python FullStack
AI Native Developer
new
Навчання
Курси
Задачі
Опитування
Ігри
Допомога
Графік стусанів
Стажування
Спільнота
Користувачі
Форум
Чат
Статті
Історії успіху
Дії
Відгуки
Передплати
Світла тема

Лекції

  • Відгуки
  • Про нас
  • CS50
Почати
Почати навчання
Почати навчання
  • Моє навчання
  • Курси
  • Університет
  • Карта квестів
  • Лекції
  • Інкапсуляція та видимість властивостей: public / private / internal

    Kotlin SELF
    32 рівень, 0 лекція
    Розбираємо інкапсуляцію в Kotlin через контроль видимості: чому public за замовчуванням — це «відчинені двері», як private захищає стан та інваріанти і де доречний internal (доступ усередині модуля). На прикладі Expense і ExpenseBook показуємо, чому не можна віддавати назовні MutableList, як повертати безпечний знімок List і як перевіряти коректність даних через require ( ).
    Відкрита
  • Ґетери та сетери в Kotlin: private set, computed properties і field

    Kotlin SELF
    32 рівень, 1 лекція
    Розбираємося, чому властивість у Kotlin — це міні-API: читання відбувається через get(), а запис — через set(value). Учимося «відкривати» читання й «закривати» запис за допомогою private set, робити computed properties (властивості-вітрини) без зберігання значення та правильно працювати з backing field через field. Окремо розглянемо валідацію й нормалізацію в сетері ( require(...), trim()), а також типові помилки (рекурсія в setter, «дорогі» computed properties, розмазана валідація).
    Відкрита
  • lateinit — відкладена ініціалізація та безпечний дизайн API класу

    Kotlin SELF
    32 рівень, 2 лекція
    Розберемося, коли доречно використовувати lateinit у Kotlin: як оголошувати властивості non-null без початкової ініціалізації, які є обмеження ( val і примітиви), що станеться за надто раннього доступу та як проєктувати «двохетапну готовність» через init(...) + check(...)/ require(...). Закріпимо все на практичному прикладі консольної сесії BudgetBuddySession.
    Відкрита
  • by lazy — ліниве обчислення та кешування результату

    Kotlin SELF
    32 рівень, 3 лекція
    Розбираємо делеговану властивість val x by lazy { ... }: коли саме виконується блок, що і як кешується, чим lazy відрізняється від computed property через get ( ) і від lateinit, а також які пастки виникають через застарілий кеш, побічні ефекти й нюанси потокобезпечності.
    Відкрита
  • Делегати властивостей: Delegates.observable як реакція на присвоювання

    Kotlin SELF
    32 рівень, 4 лекція
    Розбираємося, як у Kotlin користуватися делегованими властивостями через by і готовим делегатом Delegates.observable: коли викликається обробник (після присвоювання), які параметри він отримує ( old/ new і метадані властивості), як не ламати інкапсуляцію за допомогою private set і де цей підхід особливо зручний — для логування, прапорця «брудно», лічильника змін. Наприкінці — типові помилки: рекурсія в обробнику, спроба валідувати «після запису» та надто «шумний» лог.
    Відкрита
Навчання
  • Курси програмування
  • Реєстрація
  • Курс Java
  • Допомога із задачами
  • Ціни
Спільнота
  • Користувачі
  • Статті
  • Форум
  • Чат
  • Історії успіху
  • Дії
Компанія
  • Про нас
  • Контакти
  • Відгуки
  • FAQ
  • Підтримка
JavaRush JavaRush — це інтерактивний онлайн-курс вивчення Java-програмування з нуля. Він містить 1200 практичних задач із перевіркою розв'язання одним клацанням, необхідний мінімум знань із теоретичних основ Java, а ще мотивувальні «фішки», які допоможуть пройти курс до кінця: ігри, опитування, цікаві проєкти й статті про ефективне навчання та кар'єру Java‑девелопера.
Підписуйтесь
Мова інтерфейсу
Русский English
Українська
Програмістами не народжуються © 2026 JavaRush
MastercardVisa
Програмістами не народжуються © 2026 JavaRush