Назад к вопросам
Junior
110
questionbank

Какие существуют модификаторы доступа для типов в Kotlin?

Sobes Copilot

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

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

sobes.tech AI

  • public: Виден везде. По умолчанию.
  • private: Виден только внутри текущего файла или внутри класса/интерфейса (для членов).
  • protected: Виден внутри класса/интерфейса, его подклассов и модулей-команды (companion objects). Не применим к top-level объявлениям.
  • internal: Виден внутри одного модуля.
// Top-level объявление (применяется к файлу)
public class PublicClass // Виден везде (неявный public)
internal class InternalClass // Виден внутри модуля
private fun privateFunction() {} // Виден только в этом файле

class MyClass {
    public val publicProperty: Int = 1 // Виден везде
    internal val internalProperty: Int = 2 // Виден внутри модуля
    private val privateProperty: Int = 3 // Виден только в MyClass
    protected val protectedProperty: Int = 4 // Виден в MyClass и его подклассах

    fun publicMethod() {} // Виден везде (неявный public)
    internal fun internalMethod() {} // Виден внутри модуля
    private fun privateMethod() {} // Виден только в MyClass
    protected fun protectedMethod() {} // Виден в MyClass и его подклассах
}