Junior
Jak realizowana jest enkapsulacja w Kotlinie?
sobes.tech AI
Odpowiedź od AI
Enkapsulacja w Kotlinie osiągana jest za pomocą modyfikatorów dostępu i właściwości.
Modyfikatory dostępu:
public: dostępny z dowolnego miejsca (domyślnie).internal: dostępny w obrębie tego samego modułu.protected: dostępny w swojej klasie i jej podklasach.private: dostępny tylko wewnątrz klasy, w której jest zadeklarowany.
Właściwości służą do zarządzania dostępem do danych klasy. Mogą mieć getter i setter, które można nadpisać, aby dodać logikę podczas odczytu lub zapisu wartości.
class Person {
// Prywatne pole, dostępne tylko w klasie
private var _name: String = ""
// Właściwość z publicznym getterem i prywatnym setterem
var name: String
get() = _name
private set(value) {
_name = value
}
// Funkcja publiczna do ustawiania imienia, kontrolująca wejście
fun setName(newName: String) {
if (newName.isNotBlank()) {
name = newName
} else {
println("Imię nie może być puste")
}
}
}
fun main() {
val person = Person()
person.setName("Alice") // Używamy kontrolowanej metody do zmiany
println(person.name) // Odczyt wartości przez getter
// person.name = "Bob" // Błąd kompilacji, setter jest prywatny
}