Kotlin, da molto tempo indietro intorno ai 3-4 anni credo sia diventato un linguaggio popolare (a partire dalla fase beta). Stavo solo dando un’occhiata ai fatti e ho trovato qualcosa di intrigante che i modificatori in Kotlin sono poco diversi da Java.
Cominciamo con Java, In Java, abbiamo Public, Private, Protected e Package-private (se non sapete che esiste vi spiegherò cos’è tra un momento).
Tutti conoscono il modificatore “Public”, che è fondamentalmente accessibile a tutte le classi.
Private d’altra parte tiene le funzioni o le variabili visibili solo a quella classe (tranne che si può cambiare usando la riflessione, ma questo non è il punto qui) altre classi o sottoclassi anche non ottengono funzioni e variabili private.
Protected tiene le funzioni e le variabili visibili alle sottoclassi e all’ambito del livello del pacchetto.
Qual è l’identificatore di default in Java? Voglio dire, se non si specifica il tipo di modificatore di visibilità in java cosa fa il compilatore java a quella funzione o variabile? Assegnerà quelle funzioni e variabili come “Package-Private”. e cosa significa veramente?
Package-Private significa che potete usare quelle funzioni e variabili solo per una sottoclasse che si trova nello stesso package e classi all’interno di quel package.
Un piccolo diagramma per tenere o afferrare le cose di cui sopra:
Ora che siamo sulla pagina di Java parliamo di Kotlin. Kotlin ha alcune diverse definizioni di modificatori rispetto a Java. Pubblico, Privato, Protetto, Interno.
Pubblico e Privato sono gli stessi modificatori di visibilità di Java.
Per quanto riguarda “Protetto” questo è leggermente diverso da Java. In Java, “Protetto” significa che funzioni o variabili possono avere accesso sotto lo stesso pacchetto o sottoclasse con un pacchetto diverso. Mentre in Kotlin “Protetto” significa che è accessibile nella stessa classe o nella classe che ha ereditato da quella mentre non è accessibile nel pacchetto.
0 commenti