Junior
Kotlin'da inkapsulyatsiya qanday amalga oshiriladi?
sobes.tech AI
AIdan javob
Kotlin'da inkapsulasyon, erişim modifikatorlari va xususiyatlar yordamida amalga oshiriladi.
Erişim modifikatorlari:
public: har joydan kirish mumkin (standart).internal: shuningdek, bir modul ichida kirish mumkin.protected: o'z sinfida va uning vorislarida kirish mumkin.private: faqat ta'riflangan sinf ichida kirish mumkin.
Xususiyatlar sinf ma'lumotlariga kirishni boshqarish uchun ishlatiladi. Ular o'qish va yozish uchun getter va setterga ega bo'lishi mumkin, ularni yozish yoki o'qishda logika qo'shish uchun qayta yozish mumkin.
class Person {
// Maxfiy maydon, faqat sinf ichida kirish mumkin
private var _name: String = ""
// Jamoatchilik getter va maxfiy setter bilan xususiyat
var name: String
get() = _name
private set(value) {
_name = value
}
// Ismni o'rnatish uchun jamoatchilik funktsiya, kirishni nazorat qiladi
fun setName(newName: String) {
if (newName.isNotBlank()) {
name = newName
} else {
println("Ism bo'sh bo'lishi mumkin emas")
}
}
}
fun main() {
val person = Person()
person.setName("Alice") // Nazorat qiluvchi metod yordamida o'zgartirish
println(person.name) // Getter orqali qiymatni o'qish
// person.name = "Bob" // Kompilyatsiya xatosi, setter maxfiy
}