Назад к вопросам
Intern
77
questionbank

Что такое модификаторы доступа?

Sobes Copilot

Получайте ответы в реальном времени

Ответ от нейросети

sobes.tech AI

Модификаторы доступа в Kotlin определяют видимость объявлений (классов, интерфейсов, функций, свойств). Они контролируют, где может использоваться данный элемент.

Доступные модификаторы:

  • public (по умолчанию): Видимость из любого места.
  • private: Видимость только внутри содержащегося блока (класс, файл).
  • protected: Видимость внутри класса и всех его подклассов. Недоступен для членов верхнего уровня (определенных вне класса).
  • internal: Видимость только внутри того же модуля.

Пример:

// file: Example.kt

package com.example.app

private const val PRIVATE_CONSTANT = 1 // Виден только в этом файле

public class PublicClass { // Виден из любого места

    private var privateProperty = 0 // Виден только внутри PublicClass

    protected open fun protectedMethod() { // Виден внутри PublicClass и его подклассов
        // ...
    }

    internal fun internalMethod() { // Виден только внутри модуля ComExampleApp
        // ...
    }
}

open class BaseClass {
    protected val protectedValue = 5 // Виден внутри BaseClass и подклассов
}

class DerivedClass : BaseClass() {
    fun useProtectedValue() {
        println(protectedValue) // Доступ к protectedValue из подкласса
    }
}