Junior
Fale sobre os modificadores de acesso em Java e Kotlin.
sobes.tech IA
Resposta da IA
Em Java:
public: acessível de qualquer lugar.protected: acessível dentro da classe, pacote e subclasses.- (sem modificador): acessível dentro do pacote (package-private).
private: acessível apenas dentro da classe.
Em Kotlin:
public: acessível de qualquer lugar (padrão).internal: acessível dentro do módulo.protected: acessível dentro da classe e suas subclasses (diferente do Java em relação ao acesso no pacote).private: acessível apenas dentro da classe/arquivo.
Diferenças:
- Em Kotlin, não há o modificador "package-private", seu equivalente é
internalcom um escopo diferente (o módulo). - Em Kotlin,
protectednão fornece acesso dentro do pacote, como em Java. - Em Kotlin,
privatetambém pode ser usado para declarações de nível superior (funções, propriedades) em um arquivo, tornando-as acessíveis apenas dentro desse arquivo.
// Exemplo em Kotlin
package com.example.myapp
private const val API_KEY = "secret" // Visível apenas neste arquivo
class MyClass {
private val internalState = 1 // Visível apenas dentro de MyClass
protected fun protectedMethod() {} // Visível em MyClass e suas subclasses
internal fun internalMethod() {} // Visível dentro do módulo
}