Junior
Mis on juurdepääsimu modifikaator 'internal' Kotlinis ja kuidas seda kasutada?
sobes.tech AI
Vastus AI-lt
Kotlin'i juurdepääsirežiim internal tähendab, et deklaratsioon on nähtav ainult sama mooduli sees. Moodul võib olla rühm Kotlin-faile, mis kompileeritakse koos, näiteks:
- Gradle moodul (allikate kogum).
- Maven moodul.
- Ant allikate kogum.
See on kasulik, peites rakendusdetailid moodulis, muutes need teiste moodulite koodile kättesaamatuks.
internal saab kasutada:
- Klassidega
- Liidestega
- Objekte (object)
- Funktsioonidega
- Omadustega
- Konstruktoritega
Näide:
// "module1" moodul
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 = "Internal value"
}
// "module1" moodul
package com.example.module1
fun someFunctionInModule1() {
val internalCls = InternalClass() // Saadaval
internalCls.internalFunction() // Saadaval
println(InternalObject.internalProperty) // Saadaval
}
// "module2" moodul
package com.example.module2
import com.example.module1.InternalClass // Kompileerimisel viga
import com.example.module1.InternalObject // Kompileerimisel viga
fun someFunctionInModule2() {
// Ei saa luua InternalClass eksemplari ega pääseda InternalObject'ile
// val internalCls = InternalClass() // Ei saadaval
// println(InternalObject.internalProperty) // Ei saadaval
}
Peamine erinevus public (nähtav kõikjal), private (nähtav ainult klassi sees) ja protected (nähtav ainult klassi ja selle alamklasside sees) vahel on just nähtavustase moodulites.