U ovom ćete članku naučiti o sva 4 modifikatora vidljivosti u Kotlinu i kako oni rade u različitim scenarijima.
Modifikatori vidljivosti su ključne riječi koje postavljaju vidljivost (pristupačnost) klasa, objekata, sučelja, konstruktora, funkcija, svojstava i njihovih postavljača. (Ne možete postaviti modifikator vidljivosti getera jer oni uvijek imaju istu vidljivost kao i svojstvo.)
U Kotlin klasa i objekata članku, saznao modifikatora vidljivosti publici privateukratko. Saznat ćete o još dva modifikatora vidljivosti protectedi internal(kao i publici private) u pojedinostima.
Modifikatori vidljivosti unutar paketa
Paket organizira skup povezanih funkcija, svojstava i klasa, objekata i sučelja. Preporučena literatura: Kotlin paketi
| Modifikator | Opis |
|---|---|
| javnost | deklaracije su vidljive posvuda |
| privatni | vidljivo unutar datoteke koja sadrži deklaraciju |
| unutarnja | vidljiv unutar istog modula (skup Kotlin datoteka sastavljenih zajedno) |
| zaštićen | nije dostupno za pakete (koristi se za podrazrede) |
Napomena: Ako modifikator vidljivosti nije naveden, on je publicprema zadanim postavkama.
Uzmimo primjer:
// naziv datoteke: hello.kt paket test fun fun1 () () // prema zadanim postavkama javni i vidljiv svugdje private fun function2 () () // vidljiv unutar hello.kt interne zabavne funkcije3 () () // vidljiv unutar isti modul var name = "Foo" // vidljiv svugdje get () = polje // vidljivo iznutra hello.kt (isto kao i njegovo svojstvo) private set (value) (// visible inside hello.kt field = value) private class class1 () // vidljivo iznutra hello.kt
Modifikatori vidljivosti unutar klasa i sučelja
Evo kako modifikatori vidljivosti rade za članove (funkcije, svojstva) deklarirane unutar klase:
| Modifikator | Opis |
|---|---|
| javnost | vidljiv svakom klijentu koji može vidjeti klasu prijavljivanja |
| privatni | vidljiv samo unutar predavanja |
| zaštićen | vidljiv unutar klase i njezinih podrazreda |
| unutarnja | vidljiv svakom klijentu unutar modula koji može vidjeti klasu prijavljivanja |
Napomena: Ako nadjačate protectedčlana u izvedenoj klasi bez navođenja njegove vidljivosti, njegova će vidljivost također biti protected.
Uzmimo primjer:
otvorena klasa Base () (var a = 1 // javno prema zadanim postavkama privatno var b = 2 // privatno prema osnovnoj klasi zaštićeno otvoreno val c = 3 // vidljivo za bazu i izvedenu klasu interni val d = 4 // vidljivo unutar istog modula zaštićena zabava e () () // vidljiva za klasu Base i izvedena klasa) Izvedeno: Base () (// vidljivi su a, c, d i e () osnovne klase // b nije vidljivo nadjačavanje val c = 9 // c je zaštićeno) fun main (args: Array) (val base = Base () // base.a i base.d su vidljivi // base.b, base.c i base .e () nisu vidljivi val izvedeno = Izvedeno () // izvedeno.c nije vidljivo)
Promjena vidljivosti konstruktora
Prema zadanim postavkama, vidljivost konstruktora je public. Međutim, možete ga promijeniti. Za to morate izričito dodati constructorključnu riječ.
Konstruktor je publicprema zadanim postavkama u donjem primjeru:
test klase (val a: Int) (// kod)
Evo kako možete promijeniti njegovu vidljivost.
klasa Test privatni konstruktor (val a: Int) (// kod)
Ovdje je konstruktor private.
Napomena: U Kotlinu lokalne funkcije, varijable i klase ne mogu imati modifikatore vidljivosti.








