Sobes.tech
Junior

Come viene realizzata l'incapsulamento in Kotlin?

sobes.tech AI

Risposta dell'AI

L'incapsulamento in Kotlin si ottiene tramite modificatori di accesso e proprietà.

Modificatori di accesso:

  • public: accessibile ovunque (predefinito).
  • internal: accessibile all'interno dello stesso modulo.
  • protected: accessibile nella sua classe e nelle sue sottoclassi.
  • private: accessibile solo all'interno della classe in cui è dichiarato.

Le proprietà vengono utilizzate per gestire l'accesso ai dati della classe. Possono avere un getter e un setter, che possono essere sovrascritti per aggiungere logica durante la lettura o la scrittura del valore.

class Person {
    // Campo privato, accessibile solo all'interno della classe
    private var _name: String = ""

    // Proprietà con getter pubblico e setter privato
    var name: String
        get() = _name
        private set(value) {
            _name = value
        }

    // Funzione pubblica per impostare il nome, controllando l'input
    fun setName(newName: String) {
        if (newName.isNotBlank()) {
            name = newName
        } else {
            println("Il nome non può essere vuoto")
        }
    }
}

fun main() {
    val person = Person()
    person.setName("Alice") // Usare il metodo controllato per cambiare
    println(person.name)    // Leggere il valore tramite il getter
    // person.name = "Bob"   // Errore di compilazione, il setter è privato
}