Junior
Kotlin'de 'internal' erişim belirteci nedir ve nasıl kullanılır?
sobes.tech yapay zeka
AI'dan gelen yanıt
Kotlin'de internal erişim belirteci, bildirimin aynı modül içinde görünür olduğu anlamına gelir. Bir modül, birlikte derlenmiş Kotlin dosyaları kümesi olabilir, örneğin:
- Gradle Modülü (kaynak seti).
- Maven Modülü.
- Ant Kaynak seti.
Bu, modül içindeki uygulama detaylarını gizlemek ve bunları diğer modüllerden erişilemez hale getirmek için kullanışlıdır.
internal şu öğelerle kullanılabilir:
- Sınıflar
- Arayüzler
- Nesneler (object)
- Fonksiyonlar
- Özellikler
- Yapıcılar
Kullanım örneği:
// "module1" modülü
package com.example.module1
internal class InternalClass {
internal fun internalFunction() {
// Bu kod sadece module1 içinde görünür
}
}
// Bu nesne de sadece module1 içinde görünür
internal object InternalObject {
internal val internalProperty = "Dahili değer"
}
// "module1" modülü
package com.example.module1
fun someFunctionInModule1() {
val internalCls = InternalClass() // Erişilebilir
internalCls.internalFunction() // Erişilebilir
println(InternalObject.internalProperty) // Erişilebilir
}
// "module2" modülü
package com.example.module2
import com.example.module1.InternalClass // Derleme hatası
import com.example.module1.InternalObject // Derleme hatası
fun someFunctionInModule2() {
// InternalClass örneği oluşturulamaz veya InternalObject'e erişilemez
// val internalCls = InternalClass() // Erişilemez
// println(InternalObject.internalProperty) // Erişilemez
}
Ana fark, public (her yerde görünür), private (sadece sınıf içinde) ve protected (sınıf ve alt sınıflar içinde görünür) ile karşılaştırıldığında, modüller seviyesinde görünürlük seviyesidir.