Junior
Čo je modifikátor prístupu 'internal' v Kotlin a ako ho použiť?
sobes.tech AI
Odpoveď od AI
Prístupový modifikátor internal v Kotlin znamená, že deklarácia je viditeľná v rámci toho istého modulu. Modul môže byť súbor Kotlin súborov skompilovaných spoločne, napríklad:
- Gradle modul (súbor zdrojového kódu).
- Maven modul.
- Ant súbor zdrojového kódu.
Toto je užitočné na skrytie implementačných detailov v rámci modulu, čím sa stávajú nedostupnými pre kód z iných modulov.
internal možno použiť s:
- Triedami
- Rozhraniami
- Objektmi (object)
- Funkciami
- Vlastnosťami
- Konštruktormi
Príklad použitia:
// Modul "module1"
package com.example.module1
internal class InternalClass {
internal fun internalFunction() {
// Tento kód je viditeľný iba v rámci module1
}
}
// Tento objekt je tiež viditeľný iba v rámci module1
internal object InternalObject {
internal val internalProperty = "Vnútorná hodnota"
}
// Modul "module1"
package com.example.module1
fun someFunctionInModule1() {
val internalCls = InternalClass() // Dostupné
internalCls.internalFunction() // Dostupné
println(InternalObject.internalProperty) // Dostupné
}
// Modul "module2"
package com.example.module2
import com.example.module1.InternalClass // Chyba kompilácie
import com.example.module1.InternalObject // Chyba kompilácie
fun someFunctionInModule2() {
// Nie je možné vytvoriť inštanciu InternalClass alebo pristúpiť k InternalObject
// val internalCls = InternalClass() // Nedostupné
// println(InternalObject.internalProperty) // Nedostupné
}
Hlavný rozdiel od public (viditeľné všade), private (len v rámci triedy) a protected (v rámci triedy a jej podtried) je práve na úrovni viditeľnosti podľa modulov.