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.








