In diesem Tutorial werden wir die verschiedenen Sichtbarkeitsmodifizierer diskutieren, die in der Kotlin-Programmierung verfügbar sind.
Kotlin-Sichtbarkeitsmodifizierer
Sichtbarkeitsmodifizierer sind Modifizierer, die, wenn sie einem Klasse/Interface/Eigenschaft/Funktion in Kotlin angehängt werden, definieren würden, wo alles sichtbar ist und von wo aus es zugegriffen werden kann. Die Setter von Eigenschaften in Kotlin können einen separaten Modifizierer von der Eigenschaft haben. Die Getter können keinen Sichtbarkeitsmodifizierer haben. Sie verwenden den gleichen Modifizierer wie die Eigenschaft. Folgende sind die Sichtbarkeitsmodifizierer:
- public
- protected
- internal
- private
Öffentlicher Modifizierer
A Public Modifier is the default modifier in Kotlin. Just like the Java public modifier, it means that the declaration is visible everywhere.
class Hello{
}
public class H{
}
fun hi()
public fun hello()
val i = 0
public val j = 5
Alle obigen Deklarationen befinden sich auf der obersten Ebene der Datei. ALLE sind öffentlich. Wenn wir die Deklaration der Elemente der Klasse nicht angeben, sind sie öffentlich (sofern sie nicht überschrieben werden).
Geschützter Modifizierer
A Protected Modifier in Kotlin: CANNOT be set on top-level declarations. Declarations that are protected in a class, can be accessed only in their subclasses.
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 und in der Unterklasse überschrieben werden, behalten den geschützten Modifikator bei, es sei denn, Sie ändern ihn explizit.
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 geschützten Modifikatoren in Kotlin, wie oben definiert, unterscheidet sich von dem in Java.
Internal Modifier
Internal ist ein neuer Modifikator in Kotlin, der in Java nicht vorhanden ist. Wenn Sie eine Deklaration als internal festlegen, bedeutet dies, dass sie nur im selben Modul verfügbar sein wird. Mit Modul meinen wir in Kotlin eine Gruppe von Dateien, die zusammen kompiliert werden.
internal class A {
}
internal val x = 0
Sie werden außerhalb des aktuellen Moduls nicht sichtbar sein. Der interne Modifikator ist nützlich, wenn Sie bestimmte Implementierungen einer Bibliothek vor den Benutzern verbergen müssen. Dies war mit der Sichtbarkeit „paket-privat“ in Java nicht möglich.
Private Modifiers
Private Modifiers erlauben es den Deklarationen nicht, außerhalb des aktuellen Geltungsbereichs sichtbar zu sein.
var setterVisibility: String = "abc"
private set
open class Pr{
open protected val i = 0
fun iValue() : Int
{
setterVisibility = 10
return setterVisibility
}
}
Da Kotlin mehrere Top-Level-Definitionen erlaubt, funktioniert der obige Code. Der folgende Code funktioniert nicht.
private open class ABC{
private val x = 6
}
private class BDE : ABC()
{
fun getX()
{
return x //x cannot be accessed here.
}
}
x is visibile only from inside its class. We can set private constructors in the following way:
class PRIV private constructor(a: String) {
...
}
Standardmäßig haben Klassen öffentliche Konstruktoren. Wohin die Klasse auch geht, der Konstruktor folgt. Wir müssen den Sichtbarkeitsmodifizierer im Definition selbst setzen. Daher verwendet Kotlin die geschützten und internen Modifizierer anders als Java. Außerdem ist der Standardmodifizierer von Java paketprivat, was es in Kotlin noch nicht gibt. Damit endet dieses kurze Tutorial zu Sichtbarkeitsmodifizierern in Kotlin.