Junior
Hoe wordt encapsulatie uitgevoerd in Kotlin?
sobes.tech AI
Antwoord van AI
Encapsulatie in Kotlin wordt bereikt door middel van toegangsmutators en eigenschappen.
Toegangsmutators:
public: toegankelijk vanaf elke locatie (standaard).internal: toegankelijk binnen dezelfde module.protected: toegankelijk in zijn eigen klasse en in subklassen.private: alleen toegankelijk binnen de klasse waarin het is gedeclareerd.
Eigenschappen worden gebruikt om de toegang tot de gegevens van de klasse te beheren. Ze kunnen een getter en setter hebben, die overschreven kunnen worden om logica toe te voegen bij het lezen of schrijven van de waarde.
class Person {
// Privé veld, alleen toegankelijk binnen de klasse
private var _name: String = ""
// Eigenschap met publieke getter en private setter
var name: String
get() = _name
private set(value) {
_name = value
}
// Publieke functie om de naam in te stellen, controleert de invoer
fun setName(newName: String) {
if (newName.isNotBlank()) {
name = newName
} else {
println("Naam mag niet leeg zijn")
}
}
}
fun main() {
val person = Person()
person.setName("Alice") // Gebruik de gecontroleerde methode om te wijzigen
println(person.name) // Lees de waarde via de getter
// person.name = "Bob" // Fout bij compilatie, setter is privé
}