Назад к вопросам
Junior
97
questionbank
Расскажи о модификаторах доступа в Java и Kotlin.
Sobes Copilot
Получайте ответы в реальном времени
Ответ от нейросети
sobes.tech AI
В Java:
public: доступен из любого места.protected: доступен внутри класса, пакета и подклассов.- (без модификатора): доступен внутри пакета (package-private).
private: доступен только внутри класса.
В Kotlin:
public: доступен из любого места (по умолчанию).internal: доступен внутри модуля.protected: доступен внутри класса и его подклассов (отличается от Java в части доступа в пакете).private: доступен только внутри класса/файла.
Различия:
- В Kotlin нет модификатора "package-private", его аналог —
internalс другим скоупом (модуль). - В Kotlin
protectedне предоставляет доступ в пределах пакета, как в Java. - В Kotlin
privateможно использовать и для top-level объявлений (функций, свойств) в файле, делая их доступными только внутри этого файла.
// Пример в Kotlin
package com.example.myapp
private const val API_KEY = "secret" // Виден только в этом файле
class MyClass {
private val internalState = 1 // Виден только внутри MyClass
protected fun protectedMethod() {} // Виден в MyClass и его подклассах
internal fun internalMethod() {} // Виден внутри модуля
}