Junior
Qu'est-ce que le modificateur d'accès 'internal' en Kotlin et comment l'utiliser?
sobes.tech IA
Réponse de l'IA
Le modificateur d’accès internal en Kotlin signifie que la déclaration est visible au sein du même module. Un module peut être un ensemble de fichiers Kotlin compilés ensemble, par exemple :
- Un module Gradle (ensemble de code source).
- Un module Maven.
- Un ensemble de code Ant.
Ceci est utile pour masquer les détails d’implémentation à l’intérieur du module, les rendant inaccessibles au code d’autres modules.
On peut utiliser internal avec :
- Classes
- Interfaces
- Objets (object)
- Fonctions
- Propriétés
- Constructeurs
Exemple d’utilisation :
// Module "module1"
package com.example.module1
internal class InternalClass {
internal fun internalFunction() {
// Ce code n’est visible qu’à l’intérieur de module1
}
}
// Cet objet est également visible uniquement à l’intérieur de module1
internal object InternalObject {
internal val internalProperty = "Valeur interne"
}
// Module "module1"
package com.example.module1
fun someFunctionInModule1() {
val internalCls = InternalClass() // Disponible
internalCls.internalFunction() // Disponible
println(InternalObject.internalProperty) // Disponible
}
// Module "module2"
package com.example.module2
import com.example.module1.InternalClass // Erreur de compilation
import com.example.module1.InternalObject // Erreur de compilation
fun someFunctionInModule2() {
// Impossible de créer une instance de InternalClass ou d’accéder à InternalObject
// val internalCls = InternalClass() // Non accessible
// println(InternalObject.internalProperty) // Non accessible
}
La principale différence avec public (visible partout), private (seulement dans la classe) et protected (dans la classe et ses sous-classes) réside dans le niveau de visibilité par modules.