Junior
Kotlinде инкапсуляция кандайча ишке ашырылат?
sobes.tech AI
AIден жооп
Kotlin'de kapsülleme erişim modifikatorları ve özellikler aracılığıyla gerçekleştirilir.
Erişim modifikatorları:
public: herhangi bir yerden erişilebilir (varsayılan).internal: aynı modül içinde erişilebilir.protected: kendi sınıfında ve alt sınıflarında erişilebilir.private: sadece tanımlandığı sınıf içinde erişilebilir.
Özellikler, sınıfın verilerine erişimi yönetmek için kullanılır. Okuma ve yazma işlemleri için getter ve setter tanımlanabilir, ve bunlar üzerine yazılarak ek mantık eklenebilir.
class Person {
// Özel alan, sadece sınıf içinde erişilebilir
private var _name: String = ""
// Genel getter ve özel setter ile özellik
var name: String
get() = _name
private set(value) {
_name = value
}
// İsim ayarlamak için genel fonksiyon, giriş kontrolü yapar
fun setName(newName: String) {
if (newName.isNotBlank()) {
name = newName
} else {
println("İsim boş olamaz")
}
}
}
fun main() {
val person = Person()
person.setName("Alice") // Kontrol edilen metodla değiştiriyoruz
println(person.name) // Getter ile değeri okuyoruz
// person.name = "Bob" // Derleme hatası, setter özel
}