Как осуществляется инкапсуляция в Kotlin?

Инкапсуляция в Kotlin достигается с помощью модификаторов доступа и свойств.

Короткий ответ

Что ответить на собеседовании

Инкапсуляция в Kotlin достигается с помощью модификаторов доступа и свойств.

Подробный разбор

Ответ с пояснениями

Инкапсуляция в Kotlin достигается с помощью модификаторов доступа и свойств.

Модификаторы доступа:

  • public: доступен откуда угодно (по умолчанию).
  • internal: доступен в пределах одного модуля.
  • protected: доступен в своем классе и в его подклассах.
  • private: доступен только внутри класса, где объявлен.

Свойства (properties) используются для управления доступом к данным класса. Они могут иметь getter и setter, которые можно переопределить для добавления логики при чтении или записи значения.

class Person {
    // Приватное поле, доступно только внутри класса
    private var _name: String = ""

    // Свойство с публичным геттером и приватным сеттером
    var name: String
        get() = _name
        private set(value) {
            _name = value
        }

    // Публичная функция для установки имени, контролирующая ввод
    fun setName(newName: String) {
        if (newName.isNotBlank()) {
            name = newName
        } else {
            println("Name cannot be blank")
        }
    }
}

fun main() {
    val person = Person()
    person.setName("Alice") // Используем контролируемый метод для изменения
    println(person.name)    // Читаем значение через геттер
    // person.name = "Bob"   // Ошибка компиляции, сеттер приватный
}

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее