Selles artiklis saate teada kõigist 4 Kotlini nähtavuse modifitseerijast ja nende toimimisest erinevates stsenaariumides.
Nähtavuse modifikaatorid on märksõnad, mis määravad klasside, objektide, liidese, konstruktorite, funktsioonide, omaduste ja nende seadistajate nähtavuse (juurdepääsetavuse). (Te ei saa seada getterite nähtavuse modifikaatorit, kuna need võtavad alati sama nähtavuse kui vara.)
In Kotlin klassi ja objektid artikkel, siis teada nähtavust modifikaatoreid public
ja private
lühidalt. Saate teada veel kahest nähtavuse modifikaatorist protected
ja internal
(ning ka public
ja private
) üksikasjalikult.
Nähtavuse muutjad pakendis
Pakett korraldab seotud funktsioonide, omaduste ja klasside, objektide ja liideste komplekti. Soovitatav lugemine: Kotlini paketid
Muutja | Kirjeldus |
---|---|
avalik | deklaratsioonid on kõikjal nähtavad |
privaatne | deklaratsiooni sisaldava faili sees |
sisemine | nähtav sama mooduli sees (kokku pandud Kotlini failide komplekt) |
kaitstud | pole pakettide jaoks saadaval (kasutatakse alaklassides) |
Märkus. Kui nähtavuse modifikaatorit pole määratud, on see public
vaikimisi.
Võtame näite:
// faili nimi: hello.kt paketi test fun fun1 () () // vaikimisi avalik ja nähtav kõikjal private fun function2 () () // hello.kt sisemine fun function3 () () // nähtav sama moodul var name = "Foo" // nähtav kõikjal () // tere.kt sees nähtav
Klasside ja liideste sees olevad nähtavuse muutjad
Klassides deklareeritud liikmete (funktsioonid, atribuudid) nähtavuse modifikaatorid toimivad järgmiselt.
Muutja | Kirjeldus |
---|---|
avalik | nähtav kõigile klientidele, kes näevad deklareerivat klassi |
privaatne | nähtav ainult klassi sees |
kaitstud | klassi ja selle alaklasside sees nähtav |
sisemine | nähtav kõigile mooduli sees olevatele klientidele, kes näevad deklareerivat klassi |
Märkus. Kui alistate protected
tuletatud klassi liikme selle nähtavust määramata, on ka tema nähtavus sama protected
.
Võtame näite:
avatud klassi baas () (var a = 1 // vaikimisi avalik privaatne var b = 2 // privaatne kuni baasklassi kaitstud avatud val c = 3 // baasile nähtav ja tuletatud klassi sisemine val d = 4 // nähtav sama mooduli sees kaitstud fun e () () // baasile nähtav ja klass Derived (tuletatud) klass Derived: nähtavad Base klassi Base () (// a, c, d ja e () // b pole nähtav alista val c = 9 // c on kaitstud) fun main (args: Array) (val base = Base () // base.a ja base.d on nähtavad // base.b, base.c ja base .e () pole nähtavad val tuletatud = tuletatud () // tuletatud. c pole nähtav)
Konstruktori nähtavuse muutmine
Vaikimisi on konstruktori nähtavus public
. Kuid saate seda muuta. Selleks peate sõnaselgelt lisama constructor
märksõna.
Konstruktor on public
vaikimisi toodud allpool toodud näites:
klassi test (val a: Int) (// kood)
Selle nähtavust saate muuta järgmiselt.
klass Testige erasektori ehitajat (val a: Int) (// kood)
Siin on konstruktor private
.
Märkus . Kotlinis ei saa kohalikel funktsioonidel, muutujatel ja klassidel olla nähtavuse modifikaatoreid.