Junior
Как се реализира инкапсулацията в Kotlin?
sobes.tech AI
Отговор от AI
Капсулирането в Kotlin се постига чрез модификатори за достъп и свойства.
Модификатори за достъп:
public: достъпен отвсякъде (по подразбиране).internal: достъпен в рамките на същия модул.protected: достъпен в своя клас и в подкласовете му.private: достъпен само вътре в класа, където е обявен.
Свойствата се използват за управление на достъпа до данните на класа. Те могат да имат getter и setter, които могат да бъдат преписани за добавяне на логика при четене или писане на стойността.
class Person {
// Частно поле, достъпно само вътре в класа
private var _name: String = ""
// Свойство с публичен getter и частен setter
var name: String
get() = _name
private set(value) {
_name = value
}
// Публична функция за задаване на име, контролира входа
fun setName(newName: String) {
if (newName.isNotBlank()) {
name = newName
} else {
println("Името не може да бъде празно")
}
}
}
fun main() {
val person = Person()
person.setName("Alice") // Използваме контролиран метод за промяна
println(person.name) // Четем стойността чрез гетъра
// person.name = "Bob" // Грешка при компилация, сетърът е частен
}