Junior
Wat is de toegangsmodule 'internal' in Kotlin en hoe gebruik je het?
sobes.tech AI
Antwoord van AI
De toegangsspecificator internal in Kotlin betekent dat de declaratie binnen dezelfde module zichtbaar is. Een module kan een set Kotlin-bestanden zijn die samen gecompileerd worden, bijvoorbeeld:
- Een Gradle-module (broncode set).
- Een Maven-module.
- Een Ant-broncode set.
Dit is handig om implementatiedetails binnen de module te verbergen, waardoor ze niet toegankelijk zijn voor code uit andere modules.
internal kan worden gebruikt met:
- Klassen
- Interfaces
- Objecten (object)
- Functies
- Eigenschappen
- Constructeurs
Voorbeeld van gebruik:
// Module "module1"
package com.example.module1
internal class InternalClass {
internal fun internalFunction() {
// Deze code is alleen zichtbaar binnen module1
}
}
// Dit object is ook alleen zichtbaar binnen module1
internal object InternalObject {
internal val internalProperty = "Interne waarde"
}
// Module "module1"
package com.example.module1
fun someFunctionInModule1() {
val internalCls = InternalClass() // Beschikbaar
internalCls.internalFunction() // Beschikbaar
println(InternalObject.internalProperty) // Beschikbaar
}
// Module "module2"
package com.example.module2
import com.example.module1.InternalClass // Compileerfout
import com.example.module1.InternalObject // Compileerfout
fun someFunctionInModule2() {
// Kan geen instantie van InternalClass maken of toegang krijgen tot InternalObject
// val internalCls = InternalClass() // Niet beschikbaar
// println(InternalObject.internalProperty) // Niet beschikbaar
}
Het belangrijkste verschil met public (zichtbaar overal), private (alleen binnen de klasse) en protected (binnen de klasse en haar subklassen) ligt in het module-zichtbaarheidsniveau.