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
}