Junior
Ako sa realizuje enkapsulácia v Kotlin?
sobes.tech AI
Odpoveď od AI
Zapúzdrenie v Kotlinu sa dosahuje pomocou modifikátorov prístupu a vlastností.
Modifikátory prístupu:
public: dostupné odkiaľkoľvek (predvolené).internal: dostupné v rámci toho istého modulu.protected: dostupné v svojej triede a v jej podtriedach.private: dostupné iba v rámci triedy, v ktorej je deklarované.
Vlastnosti sa používajú na riadenie prístupu k údajom triedy. Môžu mať getter a setter, ktoré je možné prepísať na pridanie logiky pri čítaní alebo zápise hodnoty.
class Person {
// Súkromné pole, dostupné iba v triede
private var _name: String = ""
// Vlastnosť s verejným getterom a súkromným setterom
var name: String
get() = _name
private set(value) {
_name = value
}
// Verejná funkcia na nastavenie mena, kontroluje vstup
fun setName(newName: String) {
if (newName.isNotBlank()) {
name = newName
} else {
println("Meno nemôže byť prázdne")
}
}
}
fun main() {
val person = Person()
person.setName("Alice") // Používame kontrolovanú metódu na zmenu
println(person.name) // Čítame hodnotu cez getter
// person.name = "Bob" // Chyba pri kompilácii, setter je súkromný
}