Kotlin - Controllo della visibilità

In questo capitolo, impareremo a conoscere i diversi modificatori disponibili nel linguaggio Kotlin. Access modifierviene utilizzato per limitare l'utilizzo delle variabili, dei metodi e della classe utilizzati nell'applicazione. Come altri linguaggi di programmazione OOP, questo modificatore è applicabile in più punti come nell'intestazione della classe o nella dichiarazione del metodo. Ci sono quattro modificatori di accesso disponibili in Kotlin.

Privato

Le classi, i metodi e i pacchetti possono essere dichiarati con un modificatore privato. Una volta che qualcosa è stato dichiarato privato, sarà accessibile nel suo ambito immediato. Ad esempio, un pacchetto privato può essere accessibile all'interno di quel file specifico. Una classe o un'interfaccia privata può essere accessibile solo dai suoi membri dati, ecc.

private class privateExample {
   private val i = 1
   private val doSomething() {
   }
}

Nell'esempio sopra, il file class “privateExample” e la variabile i possono essere entrambe accessibili solo nello stesso file Kotlin, dove è menzionata poiché sono tutte dichiarate private nel blocco di dichiarazione.

Protetto

Protected è un altro modificatore di accesso per Kotlin, che al momento non è disponibile per la dichiarazione di primo livello poiché qualsiasi pacchetto non può essere protetto. Una classe o interfaccia protetta è visibile solo alla sua sottoclasse.

class A() {
   protected val i = 1
}
class B : A() {
   fun getValue() : Int {
      return i
   }
}

Nell'esempio sopra, la variabile “i” è dichiarato protetto, quindi è visibile solo alla sua sottoclasse.

Interno

Internal è un modificatore appena aggiunto introdotto in Kotlin. Se qualcosa è contrassegnato come interno, quel campo specifico sarà nel campo interno. Un pacchetto interno è visibile solo all'interno del modulo in cui è implementato. Un'interfaccia di classe interna è visibile solo da un'altra classe presente all'interno dello stesso pacchetto o modulo. Nell'esempio seguente vedremo come implementare un metodo interno.

class internalExample {
   internal val i = 1
   internal fun doSomething() {
   }
}

Nell'esempio precedente, il metodo denominato "doSomething" e la variabile sono menzionati come interni, quindi questi due campi possono essere accessibili solo all'interno del pacchetto in cui è dichiarato.

Pubblico

Il modificatore pubblico è accessibile da qualsiasi punto dell'area di lavoro del progetto. Se non viene specificato alcun modificatore di accesso, per impostazione predefinita sarà nell'ambito pubblico. In tutti i nostri esempi precedenti, non abbiamo menzionato alcun modificatore, quindi tutti sono di portata pubblica. Di seguito è riportato un esempio per comprendere meglio come dichiarare una variabile o un metodo pubblico.

class publicExample {
   val i = 1
   fun doSomething() {
   }
}

Nell'esempio precedente, non abbiamo menzionato alcun modificatore, quindi tutti questi metodi e variabili sono di default pubblici.