Sobes.tech
Junior

Comment l'encapsulation est-elle réalisée en Kotlin?

sobes.tech IA

Réponse de l'IA

L'encapsulation en Kotlin est réalisée à l'aide de modificateurs d'accès et de propriétés.

Modificateurs d'accès :

  • public : accessible de n'importe où (par défaut).
  • internal : accessible dans le même module.
  • protected : accessible dans sa classe et ses sous-classes.
  • private : accessible uniquement à l'intérieur de la classe où il est déclaré.

Les propriétés sont utilisées pour gérer l'accès aux données de la classe. Elles peuvent avoir un getter et un setter, que l'on peut redéfinir pour ajouter de la logique lors de la lecture ou de l'écriture de la valeur.

class Person {
    // Champ privé, accessible uniquement à l'intérieur de la classe
    private var _name: String = ""

    // Propriété avec getter public et setter privé
    var name: String
        get() = _name
        private set(value) {
            _name = value
        }

    // Fonction publique pour définir le nom, contrôlant l'entrée
    fun setName(newName: String) {
        if (newName.isNotBlank()) {
            name = newName
        } else {
            println("Le nom ne peut pas être vide")
        }
    }
}

fun main() {
    val person = Person()
    person.setName("Alice") // Utilisation de la méthode contrôlée pour changer
    println(person.name)    // Lecture de la valeur via le getter
    // person.name = "Bob"   // Erreur de compilation, le setter est privé
}