Junior
Jak je v Kotlinu realizována enkapsulace?
sobes.tech AI
Odpověď od AI
Zapouzdření v Kotlinu je dosaženo pomocí modifikátorů přístupu a vlastností.
Modifikátory přístupu:
public: dostupné odkudkoli (výchozí).internal: dostupné v rámci stejného modulu.protected: dostupné ve své třídě a v jejích podtřídách.private: dostupné pouze uvnitř třídy, ve které je deklarováno.
Vlastnosti se používají k řízení přístupu k datům třídy. Mohou mít getter a setter, které lze přepsat pro přidání logiky při čtení nebo zápisu hodnoty.
class Person {
// Soukromé pole, dostupné pouze uvnitř třídy
private var _name: String = ""
// Vlastnost s veřejným getterem a soukromým setterem
var name: String
get() = _name
private set(value) {
_name = value
}
// Veřejná funkce pro nastavení jména, kontroluje vstup
fun setName(newName: String) {
if (newName.isNotBlank()) {
name = newName
} else {
println("Jméno nesmí být prázdné")
}
}
}
fun main() {
val person = Person()
person.setName("Alice") // Používáme kontrolovanou metodu ke změně
println(person.name) // Čteme hodnotu přes getter
// person.name = "Bob" // Chyba kompilace, setter je soukromý
}