Junior
Co je to modifikátor přístupu 'internal' v Kotlinu a jak ho používat?
sobes.tech AI
Odpověď od AI
Kotlinis internal ligipääsukorral tähendab, et deklaratsioon on sama mooduli sees nähtav. Moodul võib olla Kotlin-failide kogum, mis kompileeritakse koos, näiteks:
- Gradle moodul (allikakoodide kogum).
- Maven moodul.
- Ant koodikogum.
See on kasulik, et varjata mooduli sees rakenduse üksikasju, muutes need teiste moodulite koodile kättesaamatuks.
internal saab kasutada järgmiste elementidega:
- Klassid
- Liidesed
- Obektid (object)
- Funktsioonid
- Omadused
- Konstruktorid
Näide kasutamisest:
// Moodul "module1"
package com.example.module1
internal class InternalClass {
internal fun internalFunction() {
// See kood on nähtav ainult module1 sees
}
}
// See objekt on samuti nähtav ainult module1 sees
internal object InternalObject {
internal val internalProperty = "Sisemine väärtus"
}
// Moodul "module1"
package com.example.module1
fun someFunctionInModule1() {
val internalCls = InternalClass() // Saadaval
internalCls.internalFunction() // Saadaval
println(InternalObject.internalProperty) // Saadaval
}
// Moodul "module2"
package com.example.module2
import com.example.module1.InternalClass // Kompileerimisviga
import com.example.module1.InternalObject // Kompileerimisviga
fun someFunctionInModule2() {
// Ei saa luua InternalClass eksemplari ega pääseda InternalObject-ile ligi
// val internalCls = InternalClass() // Pole saadaval
// println(InternalObject.internalProperty) // Pole saadaval
}
Peamine erinevus public (nähtav igal pool), private (ainult klassi sees) ja protected (klassis ja selle alamklassides) vahel on see, et see määrab mooduli tasemel nähtavuse.