Modifikatori vidljivosti Kotlin

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.

Zanimljivi članci...