Kotlin redzamības modifikatori

Šajā rakstā jūs uzzināsiet par visiem 4 redzamības modifikatoriem Kotlīnā un to darbību dažādos scenārijos.

Redzamības modifikatori ir atslēgvārdi, kas nosaka klašu, objektu, saskarnes, konstruktoru, funkciju, īpašību un to iestatītāju redzamību (pieejamību). (Jūs nevarat iestatīt getteru redzamības modifikatoru, jo tiem vienmēr ir tāda pati redzamība kā īpašumam.)

Jo Kotlin klases un objektiem rakstā jūs uzzinājāt par redzamību modifikatoru publicun privateīsumā. Jūs uzzināsiet vēl par diviem redzamības modifikatoriem protectedun internal(kā arī publicun private) detalizēti.

Redzamības modifikatori iepakojuma iekšpusē

Pakete organizē saistīto funkciju, rekvizītu un klašu, objektu un saskarņu kopumu. Ieteicams lasīt: Kotlin Packages

Pārveidotājs Apraksts
publiski deklarācijas ir redzamas visur
Privāts redzams failā, kurā ir deklarācija
iekšējs redzams tajā pašā modulī (Kotlin failu kopa, kas sastādīta kopā)
aizsargāts nav pieejams paketēm (izmanto apakšklasēs)

Piezīme: Ja redzamības modifikators nav norādīts, tas ir publicpēc noklusējuma.

Ņemsim piemēru:

 // faila nosaukums: hello.kt pakotnes jautrības funkcija1 () () // pēc noklusējuma publiska un visur redzama privātās izklaides funkcija2 () () // redzama iekšpusē hello.kt iekšējā jautrības funkcija3 () () // redzama iekšpusē tas pats modulis var name = "Foo" // visur redzams get () = lauks // redzams iekš hello.kt (tāds pats kā tā īpašums) privātā kopa (vērtība) (// redzama iekš hello.kt lauks = vērtība) privātā klase1 () // redzams iekšā sveiki.kt

Redzamības modifikatori klasēs un saskarnēs

Lūk, kā redzamības modifikatori darbojas klases dalībniekiem (funkcijām, īpašībām):

Pārveidotājs Apraksts
publiski redzams ikvienam klientam, kurš var redzēt deklarēšanas klasi
Privāts redzams tikai klases iekšienē
aizsargāts redzams klases un tās apakšklases iekšpusē
iekšējs redzams jebkuram klientam moduļa iekšienē, kurš var redzēt deklarēšanas klasi

Piezīme: Ja jūs ignorējat protectedatvasinātās klases dalībnieku, nenorādot tā redzamību, tā redzamība arī būs protected.

Ņemsim piemēru:

 atvērtās klases bāze () (var a = 1 // publiski pēc noklusējuma privāts var b = 2 // privāts līdz Bāzes klasei aizsargāts atvērtais val c = 3 // redzams bāzei un atvasinātās klases iekšējais val d = 4 // redzams tā paša moduļa iekšpusē aizsargāta fun e () () // redzama Bāzei un Derived class) klase Derived: ir redzama Base klases Base () (// a, c, d un e () // b nav redzams ignorēt val c = 9 // c ir aizsargāts) fun main (args: Array) (val base = Base () // base.a un base.d ir redzami // base.b, base.c un base .e () nav redzami, atvasināti = atvasināti () // atvasināti. c nav redzami) 

Konstruktora redzamības maiņa

Pēc noklusējuma konstruktora redzamība ir public. Tomēr jūs to varat mainīt. Lai to izdarītu, jums skaidri jāpievieno constructoratslēgvārds.

Konstruktors publicpēc noklusējuma ir zemāk esošajā piemērā:

 klases pārbaude (val a: Int) (// kods) 

Lūk, kā jūs varat mainīt tā redzamību.

 klase Pārbaudīt privāto konstruktoru (val a: Int) (// kods)

Šeit ir konstruktors private.

Piezīme: Kotlinā vietējām funkcijām, mainīgajiem un klasēm nevar būt redzamības modifikatori.

Interesanti raksti...