Junior
Görünürlük modifikörleri nedir ve Kotlin'de nasıl kullanılır?
sobes.tech yapay zeka
AI'dan gelen yanıt
Kotlin'de görünürlük modifikasyonları, bildirimlerin (sınıflar, arayüzler, fonksiyonlar, özellikler) diğer program bölümleri tarafından erişilebilirliğini belirler.
Ana görünürlük modifikasyonları:
public: Her yerde görünür. Varsayılan modifikatördür.internal: Sadece bir modül içinde görünür. Bir modül, birlikte derlenen Kotlin dosyaları kümesi olarak kabul edilir.protected: Sınıf ve alt sınıflarında görünür (sınıf üyeleri dahil). Paket dışından görünmez.private: Tanımlandığı dosya içinde görünür. Sınıf üyeleri için, sadece bu sınıf içinde (ve onun companion object, iç içe ve iç sınıflarında) görünür.
Modifikasyonların kullanımı:
- Sınıflar, arayüzler, nesneler ve yapıcıları üzerinde.
- Üst seviyedeki fonksiyonlar, özellikler ve onların getter/setter'ları üzerinde (sınıflar dışında).
- Sınıf üyeleri üzerinde (iç içe sınıflar, iç sınıflar, fonksiyonlar, özellikler).
Örnek:
// Dosya: example.kt
private const val PRIVATE_CONSTANT = 1 // Sadece bu dosyada görünür
internal fun internalFunction() { // Sadece modül içinde görünür
println("Dahili fonksiyon çağrıldı")
}
open class BaseClass {
protected val protectedProperty = "Protected" // Bu sınıf ve alt sınıflarda görünür
fun publicMethod() { // Her yerde görünür (varsayılan olarak public)
println("Public method called")
}
private fun privateMethod() { // Sadece BaseClass içinde görünür
println("Private method called")
}
}
class DerivedClass : BaseClass() {
fun accessProtected() {
println("Protected property erişimi: $protectedProperty") // protected erişimi
// privateMethod() // Hata: private alt sınıfta görünmez
}
}
fun main() {
val base = BaseClass()
base.publicMethod()
// base.protectedProperty // Hata: protected sınıf ve alt sınıflar dışında görünmez
val derived = DerivedClass()
derived.accessProtected()
internalFunction()
// PRIVATE_CONSTANT // Hata: private üst seviyede sadece tanımlandığı dosyada görünür
}
| Modifikator | Erişilebilirlik | Nerede kullanılır |
|---|---|---|
public |
Her yerde | Varsayılan, başka bir modifikator belirtilmediğinde |
internal |
Modül içinde | Kütüphane veya modül içi API için |
protected |
Sınıf ve alt sınıflarda (sınıf üyeleri için) | Kalıtımla sınıf hiyerarjileri oluşturmak için |
private |
Dosya içinde (üst seviye); sınıf içinde (üye olarak) | Dosya veya sınıf içinde uygulama detaylarını gizlemek için |