Sobes.tech
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.