Kotlin - Contrôle de la visibilité

Dans ce chapitre, nous découvrirons les différents modificateurs disponibles en langage Kotlin. Access modifierest utilisé pour restreindre l'utilisation des variables, méthodes et classes utilisées dans l'application. Comme tout autre langage de programmation POO, ce modificateur est applicable à plusieurs endroits, comme dans l'en-tête de classe ou la déclaration de méthode. Il y a quatre modificateurs d'accès disponibles dans Kotlin.

Privé

Les classes, méthodes et packages peuvent être déclarés avec un modificateur privé. Une fois que quelque chose est déclaré comme privé, il sera accessible dans sa portée immédiate. Par exemple, un package privé peut être accessible dans ce fichier spécifique. Une classe ou une interface privée ne peut être accessible que par ses membres de données, etc.

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

Dans l'exemple ci-dessus, la classe “privateExample” et la variable i ne peut être accessible que dans le même fichier Kotlin, où elle est mentionnée car elles sont toutes déclarées comme privées dans le bloc de déclaration.

Protégé

Protected est un autre modificateur d'accès pour Kotlin, qui n'est actuellement pas disponible pour la déclaration de niveau supérieur, car aucun package ne peut être protégé. Une classe ou une interface protégée n'est visible que par sa sous-classe.

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

Dans l'exemple ci-dessus, la variable “i” est déclaré comme protégé, par conséquent, il n'est visible que par sa sous-classe.

Interne

Internal est un modificateur nouvellement ajouté introduit dans Kotlin. Si quelque chose est marqué comme interne, alors ce champ spécifique sera dans le champ interne. Un package interne n'est visible qu'à l'intérieur du module sous lequel il est implémenté. Une interface de classe interne n'est visible que par une autre classe présente à l'intérieur du même package ou du module. Dans l'exemple suivant, nous verrons comment implémenter une méthode interne.

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

Dans l'exemple ci-dessus, la méthode nommée «doSomething» et la variable sont mentionnées comme internes, par conséquent, ces deux champs ne peuvent être accessibles qu'à l'intérieur du package sous lequel il est déclaré.

Publique

Le modificateur public est accessible de n'importe où dans l'espace de travail du projet. Si aucun modificateur d'accès n'est spécifié, il sera par défaut dans la portée publique. Dans tous nos exemples précédents, nous n'avons mentionné aucun modificateur, par conséquent, tous sont dans la portée publique. Voici un exemple pour en savoir plus sur la façon de déclarer une variable ou une méthode publique.

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

Dans l'exemple ci-dessus, nous n'avons mentionné aucun modificateur, donc toutes ces méthodes et variables sont par défaut publiques.