Kotlinovi modifikatorji vidnosti

V tem članku boste izvedeli o vseh 4 modifikatorjih vidnosti v Kotlinu in kako delujejo v različnih scenarijih.

Modifikatorji vidnosti so ključne besede, ki določajo vidnost (dostopnost) razredov, predmetov, vmesnika, konstruktorjev, funkcij, lastnosti in njihovih nastaviteljev. (Sprejemnika vidnosti ne morete nastaviti na vidnost, saj imajo vedno enako vidnost kot lastnost.)

V KOTLIN razreda in predmetov članek, ste se naučili o vidljivosti modifikatorji publicin privatena kratko. Boste spoznali še dva vidljivosti modifikatorji protectedin internal(tudi publicin private) podrobno.

Modifikatorji vidnosti v paketu

Paket organizira nabor sorodnih funkcij, lastnosti in razredov, predmetov in vmesnikov. Priporočljivo branje: Paketi Kotlin

Modifikator Opis
javnosti izjave so vidne povsod
zasebno viden v datoteki, ki vsebuje izjavo
notranje viden znotraj istega modula (skupek datotek Kotlin, sestavljenih skupaj)
zaščiten ni na voljo za pakete (uporablja se za podrazrede)

Opomba: Če modifikator vidnosti ni določen, je publicprivzeto.

Vzemimo primer:

 // ime datoteke: hello.kt paket test fun fun1 () () // privzeto javno in vidno povsod private fun function2 () () // vidno znotraj hello.kt interna fun fun3 () () // vidno znotraj isti modul var name = "Foo" // viden povsod get () = polje // vidno znotraj hello.kt (enako kot njegova lastnost) private set (value) (// vidno znotraj hello.kt field = value) private class class1 () // vidno znotraj hello.kt

Modifikatorji vidnosti v razredih in vmesnikih

Evo, kako delujejo modifikatorji vidnosti za člane (funkcije, lastnosti), razglašene znotraj razreda:

Modifikator Opis
javnosti viden vsaki stranki, ki lahko vidi razred deklariranja
zasebno vidna samo znotraj predavanja
zaščiten vidna znotraj razreda in njegovih podrazredov
notranje vidna vsakemu odjemalcu znotraj modula, ki lahko vidi razred deklariranja

Opomba: Če preglasite protectedčlana v izvedenem razredu, ne da bi določili njegovo vidnost, bo tudi njegova vidnost protected.

Vzemimo primer:

 odprti razred Base () (var a = 1 // javni privzeto zaseben var b = 2 // zaseben za osnovni razred zaščiten odprti val c = 3 // viden osnovnemu in izpeljanemu razredu notranji val d = 4 // viden znotraj istega modula je zaščitena zabava e () () // vidna razredu Base in izpeljanemu razredu) Izvedeno: Base () (// vidni so a, c, d in e () osnovnega razreda // b ni vidno preglasitev val c = 9 // c je zaščiten) fun main (args: Array) (val base = Base () // base.a in base.d so vidni // base.b, base.c in base .e () niso vidni val izvedeno = Izpeljano () // pridobljeno.c ni vidno) 

Spreminjanje vidnosti konstruktorja

Privzeto je vidnost konstruktorja public. Lahko pa ga spremenite. Za to morate izrecno dodati constructorključno besedo.

Konstruktor je publicprivzeto v spodnjem primeru:

 razred Test (val a: Int) (// koda) 

Evo, kako lahko spremenite njegovo vidnost.

 class Test private constructor (val a: Int) (// koda)

Tu je konstruktor private.

Opomba: V Kotlinu lokalne funkcije, spremenljivke in razredi ne morejo imeti modifikatorjev vidnosti.

Zanimive Članki...