Tässä artikkelissa opit kaikista 4 Kotlinin näkyvyyden muuttajasta ja niiden toiminnasta eri tilanteissa.
Näkyvyyden muokkaajat ovat avainsanoja, jotka asettavat luokkien, objektien, käyttöliittymän, rakentajien, toimintojen, ominaisuuksien ja niiden asettajien näkyvyyden (saavutettavuuden). (Et voi asettaa näkymän modifiointilaitetta, koska niiden näkyvyys on aina sama kuin ominaisuuden.)
Kotlin Class and Objects -artikkelissa opit näkyvyyden muokkaajista public
ja private
lyhyesti. Opit vielä kahdesta näkyvyyden muokkaajasta protected
ja internal
(samoin kuin public
ja private
) yksityiskohtaisesti.
Näkyvyyden muokkaajat pakkauksen sisällä
Paketti järjestää joukon toisiinsa liittyviä toimintoja, ominaisuuksia ja luokkia, objekteja ja rajapintoja. Suositeltava lukeminen: Kotlin Packages
Muokkaaja | Kuvaus |
---|---|
julkinen | ilmoitukset näkyvät kaikkialla |
yksityinen | näkyvät ilmoituksen sisältävän tiedoston sisällä |
sisäinen | näkyvät saman moduulin sisällä (Kotlin-tiedostojen sarja koottu yhteen) |
suojattu | ei saatavilla paketeille (käytetään alaluokissa) |
Huomaa: Jos näkyvyyden muokkaajaa ei ole määritetty, se on public
oletuksena.
Otetaan esimerkki:
// tiedoston nimi: hello.kt -paketin hauskatoiminto1 () () // oletusarvoisesti julkinen ja näkyy kaikkialla yksityinen hauskatoiminto2 () () // näkyvissä hello.kt: n sisäinen hauska toiminto3 () () // näkyvissä sama moduuli var name = "Foo" // näkyvissä kaikkialla get () = field // näkyvissä hello.kt: n sisällä (sama kuin sen ominaisuus) yksityinen joukko (arvo) (// näkyvissä hello.kt field = value) yksityisen luokan luokka1 () // näkyy hello.kt: n sisällä
Näkyvyyden muokkaajat luokkien ja liitäntöjen sisällä
Näin näkyvyyden muokkaajat toimivat luokan sisällä ilmoitetuille jäsenille (toiminnot, ominaisuudet):
Muokkaaja | Kuvaus |
---|---|
julkinen | näkyvä kaikille asiakkaille, jotka näkevät ilmoitettavan luokan |
yksityinen | näkyvät vain luokan sisällä |
suojattu | näkyvät luokan ja sen alaluokkien sisällä |
sisäinen | näkyvät kaikille moduulin sisällä oleville asiakkaille, jotka näkevät ilmoitettavan luokan |
Huomaa: Jos ohitat protected
johdetun luokan jäsenen määrittelemättä sen näkyvyyttä, myös sen näkyvyys on protected
.
Otetaan esimerkki:
avoimen luokan Base () (var a = 1 // julkinen oletusarvoisesti yksityinen var b = 2 // yksityinen - Base-luokkaan suojattu avoin val c = 3 // näkyvä tukiasemalle ja johdetun luokan sisäinen val d = 4 // näkyvissä saman moduulin sisällä suojattu fun e () () // tukiasemalle ja johdettu luokka) luokka Johdettu: Base-luokan Base () (// a, c, d ja e () näkyvät // b ei ole näkyvissä ohittaa val c = 9 // c on suojattu) fun main (args: Array) (val base = Base () // base.a ja base.d ovat näkyvissä // base.b, base.c ja base .e () eivät ole näkyvissä val johdettu = Johdettu () // johdettu. c ei ole näkyvissä)
Rakentajan näkyvyyden muuttaminen
Rakentajan näkyvyys on oletusarvoisesti public
. Voit kuitenkin muuttaa sitä. Tätä varten sinun on lisättävä nimenomaisesti constructor
avainsana.
Rakentaja on public
oletusarvoisesti alla olevassa esimerkissä:
luokan testi (val a: Int) (// koodi)
Näin voit muuttaa sen näkyvyyttä.
luokka Testaa yksityinen rakentaja (val a: Int) (// koodi)
Tässä rakentaja on private
.
Huomaa: Kotlinissa paikallisilla funktioilla, muuttujilla ja luokilla ei voi olla näkyvyyden muokkaajia.