Junior
Hogyan valósul meg az inkapszuláció Kotlinben?
sobes.tech MI
Válasz az MI-től
A Kotlinben az enkapszulációt hozzáférés módosítók és tulajdonságok segítségével érik el.
Hozzáférés módosítók:
public: bárhonnan elérhető (alapértelmezett).internal: ugyanazon modulon belül elérhető.protected: saját osztályában és leszármazott osztályaiban elérhető.private: csak az adott osztályon belül elérhető.
A tulajdonságokat az osztály adataihoz való hozzáférés kezelésére használják. Lehetnek getter és setter, amelyeket felülírhatunk, hogy logikát adjunk hozzá az érték olvasásához vagy írásához.
class Person {
// Privát mező, csak az osztályon belül elérhető
private var _name: String = ""
// Tulajdonság nyilvános getterrel és privát setterrel
var name: String
get() = _name
private set(value) {
_name = value
}
// Nyilvános függvény a név beállítására, bemenet ellenőrzése
fun setName(newName: String) {
if (newName.isNotBlank()) {
name = newName
} else {
println("Név nem lehet üres")
}
}
}
fun main() {
val person = Person()
person.setName("Alice") // Ellenőrzött módszerrel változtatunk
println(person.name) // Érték olvasása a getterrel
// person.name = "Bob" // Fordítási hiba, a setter privát
}