„Kotlin“ matomumo modifikatoriai

Šiame straipsnyje sužinosite apie visus 4 matomumo modifikatorius Kotline ir kaip jie veikia pagal skirtingus scenarijus.

Matomumo modifikatoriai yra raktiniai žodžiai, nustatantys klasių, objektų, sąsajos, konstruktorių, funkcijų, savybių ir jų nustatiklių matomumą (prieinamumą). (Jūs negalite nustatyti matuoklių matomumo modifikatorių, nes jie visada mato tą patį matomumą kaip ir nuosavybė.)

Straipsnyje „Kotlin Class and Objects“ sužinojote apie matomumo modifikatorius publicir privatetrumpai. Sužinosite apie dar du matomumo modifikatorius protectedir internal(taip pat publicir ir private) išsamiai.

Matomumo modifikatoriai pakuotės viduje

Paketas organizuoja susijusių funkcijų, ypatybių ir klasių, objektų ir sąsajų rinkinį. Rekomenduojamas skaitymas: „ Kotlin Packages“

Modifikatorius apibūdinimas
visuomenės deklaracijos matomos visur
privatus matomas byloje, kurioje yra deklaracija
vidinis matomas to paties modulio viduje (kartu sudarytas „Kotlin“ failų rinkinys)
saugomi negalima pakuotėms (naudojamos poklasiams)

Pastaba: jei matomumo modifikatorius nenurodytas, jis yra publicnumatytasis.

Paimkime pavyzdį:

 // failo pavadinimas: hello.kt paketo bandymo funkcija fun1 () () // pagal nutylėjimą vieša ir matoma visur privataus fun funkcija2 () () // matoma viduje hello.kt vidinė linksma funkcija3 () () // matoma viduje tas pats modulis var name = "Foo" // matomas visur get () = laukas // matomas hello.kt viduje (tas pats kaip ir jo nuosavybė) privatus rinkinys (reikšmė) (// matomas hello.kt lauke = value) privačios klasės klasė1 () // matomas viduje labas.kt

Matomumo modifikatoriai klasių ir sąsajų viduje

Štai kaip matomumo modifikatoriai veikia nariams (funkcijoms, savybėms), deklaruotiems klasėje:

Modifikatorius apibūdinimas
visuomenės matomas kiekvienam klientui, kuris gali matyti deklaruojančią klasę
privatus matomas tik klasės viduje
saugomi matomas klasės ir jos poklasių viduje
vidinis matomas kiekvienam modulio klientui, kuris gali matyti deklaruojančią klasę

Pastaba: jei nepaisysite protectedišvestinės klasės nario, nenurodydami jo matomumo, jo matomumas taip pat bus protected.

Paimkime pavyzdį:

 „open class Base“ () (var a = 1 // pagal nutylėjimą privatus var b = 2 // privatus iki „Base“ klasės apsaugotas atviras val c = 3 // matomas bazei ir išvestinės klasės vidinis val d = 4 // matomas to paties modulio viduje saugoma fun e () () // matoma bazei ir išvestinei klasei) klasė Išvestinė: matoma bazės klasės bazė () (// a, c, d ir e () // b nėra matomas nepaisyti val c = 9 // c yra apsaugotas) linksmas pagrindinis (args: masyvas) (val bazė = bazė () // matoma bazė.a ir bazė.d matoma // bazė.b, baz.c ir bazė .e () nėra matomi išvestiniai = Išvestinis () // išvestinis.c nematomas) 

Konstruktoriaus matomumo keitimas

Pagal numatytuosius nustatymus konstruktoriaus matomumas yra public. Tačiau galite tai pakeisti. Tam reikia aiškiai pridėti constructorraktinį žodį.

Pagal publicnumatytuosius nustatymus konstruktorius yra toliau pateiktame pavyzdyje:

 klasės testas (val a: Int) (// kodas) 

Štai kaip galite pakeisti jo matomumą.

 klasės bandymo privatus konstruktorius (val a: Int) (// kodas)

Čia yra konstruktorius private.

Pastaba: „Kotlin“ vietinėse funkcijose, kintamuosiuose ir klasėse negali būti matomumo modifikatorių.

Įdomios straipsniai...