Sobes.tech
Junior

Was ist der Zugriffsmodifikator 'internal' in Kotlin und wie wird er verwendet?

sobes.tech KI

Antwort von AI

Der Zugriffsmodifikator internal in Kotlin bedeutet, dass die Deklaration innerhalb desselben Moduls sichtbar ist. Ein Modul kann eine Gruppe von Kotlin-Dateien sein, die zusammen kompiliert werden, zum Beispiel:

  • Ein Gradle-Modul (Quellcode-Set).
  • Ein Maven-Modul.
  • Ein Ant-Quellcode-Set.

Dies ist nützlich, um Implementierungsdetails innerhalb des Moduls zu verbergen und sie für Code in anderen Modulen unzugänglich zu machen.

internal kann verwendet werden mit:

  • Klassen
  • Schnittstellen
  • Objekten (object)
  • Funktionen
  • Eigenschaften
  • Konstruktoren

Beispiel für die Verwendung:

// Modul "module1"
package com.example.module1

internal class InternalClass {
    internal fun internalFunction() {
        // Dieser Code ist nur innerhalb von module1 sichtbar
    }
}

// Dieses Objekt ist ebenfalls nur innerhalb von module1 sichtbar
internal object InternalObject {
    internal val internalProperty = "Interner Wert"
}
// Modul "module1"
package com.example.module1

fun someFunctionInModule1() {
    val internalCls = InternalClass() // Verfügbar
    internalCls.internalFunction()     // Verfügbar
    println(InternalObject.internalProperty) // Verfügbar
}
// Modul "module2"
package com.example.module2

import com.example.module1.InternalClass // Kompilierungsfehler
import com.example.module1.InternalObject // Kompilierungsfehler

fun someFunctionInModule2() {
    // Es ist nicht möglich, eine Instanz von InternalClass zu erstellen oder auf InternalObject zuzugreifen
    // val internalCls = InternalClass() // Nicht verfügbar
    // println(InternalObject.internalProperty) // Nicht verfügbar
}

Der Hauptunterschied zu public (überall sichtbar), private (nur innerhalb der Klasse sichtbar) und protected (innerhalb der Klasse und ihrer Unterklassen sichtbar) liegt im Modul-Sichtbarkeitsniveau.