Kotlin Visibility Modifiers – Leitfaden

In diesem Tutorial werden wir die verschiedenen Sichtbarkeitsmodifikatoren besprechen, die in der Kotlin-Programmierung verfügbar sind.

Kotlin Visibility Modifiers

Sichtbarkeitsmodifikatoren sind Modifikatoren, die, wenn sie einer Klasse/Schnittstelle/Eigenschaft/Funktion in Kotlin hinzugefügt werden, definieren, wo alles sichtbar ist und von wo aus alles zugegriffen werden kann. Die Setter von Eigenschaften in Kotlin können einen separaten Modifikator von der Eigenschaft haben. Die Getter können keinen Sichtbarkeitsmodifikator definieren. Sie verwenden denselben Modifikator wie die Eigenschaft. Folgend sind die Sichtbarkeitsmodifikatoren:

  • public
  • protected
  • internal
  • private

Public Kotlin Visibility Modifiers

Ein Public Modifikator ist der Standardmodifikator in Kotlin. Ähnlich wie der Java public Modifikator bedeutet es, dass die Deklaration überall sichtbar ist.

class Hello{
}

public class H{
}

fun hi()
public fun hello()

val i = 0
public val j = 5

Alle oben genannten Deklarationen befinden sich auf der obersten Ebene der Datei. ALLE sind öffentlich. Wenn wir die Deklaration der Mitglieder der Klasse nicht erwähnen, sind sie öffentlich (es sei denn, sie werden überschrieben).

Protected Kotlin Visibility Modifiers

Ein Protected Modifikator in Kotlin: KANN nicht für Deklarationen auf der obersten Ebene gesetzt werden. Deklarationen, die in einer Klasse geschützt sind, können nur in ihren Unterklassen zugegriffen werden.

open class Pr{
    protected val i = 0
}

class Another : Pr{

    fun iValue() : Int
    {
        return i
    }
}

Klassen, die keine Unterklasse von Pr sind, können nicht auf i zugreifen. Deklarationen, die geschützt sind, haben beim Überschreiben denselben geschützten Modifikator in der Unterklasse, es sei denn, Sie ändern sie ausdrücklich.

open class Pr{
    open protected val i = 0
}

class Another : Pr(){

    fun iValue() : Int
    {
        return i
    }
    
    override val i = 5 //protected visibility
}

Das Konzept der Protected Modifikatoren in Kotlin, das oben definiert ist, unterscheidet sich von dem in Java.

Internal Modifikator

Internal ist ein neuer Modifikator, der in Kotlin verfügbar ist und in Java nicht existiert. Eine Deklaration als internal zu setzen bedeutet, dass sie nur im selben Modul verfügbar sein wird. Mit Modul in Kotlin meinen wir eine Gruppe von Dateien, die zusammen kompiliert werden.

internal class A {
}

internal val x = 0

Diese werden außerhalb des aktuellen Moduls nicht sichtbar sein. Internal Modifikatoren sind nützlich, wenn Sie bestimmte Bibliotheksimplementierungen vor den Benutzern verbergen müssen. Dies war mit der Paket-privaten Sichtbarkeit in Java nicht möglich.

Private Modifikatoren

Private Modifikatoren erlauben es nicht, dass die Deklarationen außerhalb des aktuellen Geltungsbereichs sichtbar sind.

var setterVisibility: String = "abc"
private set

open class Pr{
    open protected val i = 0

    fun iValue() : Int
    {
        setterVisibility = 10
        return setterVisibility
    }
}

Da Kotlin mehrere Definitionen auf oberster Ebene erlaubt, funktioniert der obige Code. Der unten stehende funktioniert nicht.

private open class ABC{
    private val x = 6
}

private class BDE : ABC()
{
    fun getX()
    {
        return x //x cannot be accessed here.
    }
}

x ist nur von innen seiner Klasse sichtbar. Wir können private Konstruktoren auf folgende Weise setzen:

class PRIV private constructor(a: String) {
 ... 
}

Standardmäßig haben Klassen öffentliche Konstruktoren. Wohin auch immer die Klasse geht, folgt der Konstruktor. Wir müssen den Sichtbarkeitsmodifikator am Konstruktor selbst in der Definition setzen. Somit verwendet Kotlin die protected und internal Modifikatoren anders als Java. Auch der Standardmodifikator von Java ist paket-privat, was es in Kotlin noch nicht gibt. Damit endet dieses schnelle Tutorial über Sichtbarkeitsmodifikatoren in Kotlin.

Kostenlosen Account erstellen

Registrieren Sie sich jetzt und erhalten Sie Zugang zu unseren Cloud Produkten.

Das könnte Sie auch interessieren: