Sobes.tech
Junior

Parla dei modificatori di accesso in Java e Kotlin.

sobes.tech AI

Risposta dell'AI

In Java:

  • public: accessibile da qualsiasi luogo.
  • protected: accessibile all'interno della classe, del package e delle sottoclassi.
  • (senza modificatore): accessibile all'interno del package (package-private).
  • private: accessibile solo all'interno della classe.

In Kotlin:

  • public: accessibile da qualsiasi luogo (predefinito).
  • internal: accessibile all'interno del modulo.
  • protected: accessibile all'interno della classe e delle sue sottoclassi (diverso da Java per l'accesso nel package).
  • private: accessibile solo all'interno della classe/arquivo.

Differenze:

  • In Kotlin non esiste il modificatore "package-private", il suo equivalente è internal con un ambito diverso (il modulo).
  • In Kotlin protected non fornisce accesso all'interno del package come in Java.
  • In Kotlin private può essere usato anche per dichiarazioni di livello superiore (funzioni, proprietà) in un file, rendendole accessibili solo all'interno di quel file.
// Esempio in Kotlin
package com.example.myapp

private const val API_KEY = "secret" // Visibile solo in questo file

class MyClass {
    private val internalState = 1 // Visibile solo all'interno di MyClass
    protected fun protectedMethod() {} // Visibile in MyClass e nelle sue sottoclassi
    internal fun internalMethod() {} // Visibile all'interno del modulo
}