Bu yazıda, Kotlin'deki 4 görünürlük değiştiricinin hepsini ve farklı senaryolarda nasıl çalıştıklarını öğreneceksiniz.
Görünürlük değiştiriciler, sınıfların, nesnelerin, arayüzün, yapıcıların, işlevlerin, özelliklerin ve bunların ayarlayıcılarının görünürlüğünü (erişilebilirliğini) ayarlayan anahtar sözcüklerdir. (Alıcıların görünürlük değiştiricisini her zaman mülkün görünürlükle aynı görünüme sahip oldukları için ayarlayamazsınız.)
Kotlin Sınıfı ve Nesneleri makalesinde, görünürlük değiştiricileri public
ve private
kısaca öğrendiniz . İki görünürlük değiştirici hakkında protected
ve internal
(yanı sıra public
ve private
) ayrıntılı olarak öğreneceksiniz .
Paket İçinde Görünürlük Değiştiriciler
Bir paket, bir dizi ilgili işlevi, özelliği ve sınıfı, nesneleri ve arabirimleri düzenler. Önerilen okuma: Kotlin Paketleri
Değiştirici | Açıklama |
---|---|
halka açık | bildirimler her yerde görülebilir |
özel | beyanı içeren dosyanın içinde görünür |
iç | aynı modül içinde görülebilir (birlikte derlenmiş bir dizi Kotlin dosyası) |
korumalı | paketler için mevcut değildir (alt sınıflar için kullanılır) |
Not: Görünürlük değiştirici belirtilmezse, public
varsayılan olarak budur.
Bir örnek alalım:
// dosya adı: merhaba.kt paket test eğlence işlevi1 () () // varsayılan olarak genel ve her yerde görünür özel eğlence işlevi2 () () // merhaba içinde görünür. dahili eğlence işlevi3 () () // içinde görünür aynı modül var name = "Foo" // her yerde görünür get () = alan // merhaba.kt içinde görünür (özelliğiyle aynı) özel küme (değer) (// merhaba.kt alanı = değer içinde görünür) özel sınıf sınıf1 () // merhaba.kt içinde görünür
Sınıflar ve Arayüzler İçinde Görünürlük Değiştiriciler
Görünürlük değiştiriciler, bir sınıf içinde bildirilen üyeler (işlevler, özellikler) için şu şekilde çalışır:
Değiştirici | Açıklama |
---|---|
halka açık | beyan eden sınıfı görebilen herhangi bir müşteri tarafından görülebilir |
özel | yalnızca sınıfın içinde görünür |
korumalı | sınıfın ve alt sınıflarının içinde görünür |
iç | bildiren sınıfı görebilen modül içindeki herhangi bir istemciye görünür |
Not:protected
Türetilmiş sınıftaki bir üyeyi görünürlüğünü belirtmeden geçersiz kılarsanız , görünürlüğü de olacaktır protected
.
Bir örnek alalım:
open class Base () (var a = 1 // varsayılan olarak public private var b = 2 // private to Base class korumalı open val c = 3 // Base tarafından görülebilir ve Derived class internal val d = 4 // görünür aynı modül korumalı fun e () () // Base ve Derived sınıfına görünür) sınıfı Derived: Base () (// a, c, d ve e () Base sınıfının // b görünür değil geçersiz kılma val c = 9 // c korumalı) fun main (args: Array) (val base = Base () // base.a ve base.d görünür // base.b, base.c ve base .e () görünür değil val türetildi = Türetildi () // türetildi. c görünmez)
Bir İnşaatçının Görünürlüğünü Değiştirme
Varsayılan olarak, bir yapıcının görünürlüğü şeklindedir public
. Ancak bunu değiştirebilirsiniz. Bunun için açıkça constructor
anahtar kelime eklemeniz gerekir .
Aşağıdaki public
örnekte yapıcı varsayılan olarak:
sınıf Test (değer a: Int) (// kod)
Görünürlüğünü nasıl değiştirebileceğiniz aşağıda açıklanmıştır.
class Özel oluşturucuyu test et (val a: Int) (// kod)
İşte kurucu private
.
Not: Kotlin'de yerel işlevler, değişkenler ve sınıflar görünürlük değiştiricilere sahip olamaz.