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.