Junior
Šta je modifikator pristupa 'internal' u Kotlinu i kako ga koristiti?
sobes.tech АИ
Одговор од АИ
Modifikator pristupa internal u Kotlinu znači da je deklaracija vidljiva unutar istog modula. Modul može biti skup Kotlin fajlova koji se kompajliraju zajedno, na primer:
- Gradle modul (skup izvornog koda).
- Maven modul.
- Ant skup koda.
Ovo je korisno za skrivanje detalja implementacije unutar modula, čineći ih nedostupnim za kod iz drugih modula.
internal se može koristiti sa:
- Klasama
- Interfejsima
- Objekatima (object)
- Funkcijama
- Svojstvima
- Konstruktorima
Primer upotrebe:
// Modul "module1"
package com.example.module1
internal class InternalClass {
internal fun internalFunction() {
// Ovaj kod je vidljiv samo unutar module1
}
}
// Ovaj objekat je takođe vidljiv samo unutar module1
internal object InternalObject {
internal val internalProperty = "Interna vrednost"
}
// Modul "module1"
package com.example.module1
fun someFunctionInModule1() {
val internalCls = InternalClass() // Dostupno
internalCls.internalFunction() // Dostupno
println(InternalObject.internalProperty) // Dostupno
}
// Modul "module2"
package com.example.module2
import com.example.module1.InternalClass // Greška pri kompilaciji
import com.example.module1.InternalObject // Greška pri kompilaciji
fun someFunctionInModule2() {
// Ne može da kreira instancu InternalClass ili da pristupi InternalObject
// val internalCls = InternalClass() // Nije dostupno
// println(InternalObject.internalProperty) // Nije dostupno
}
Glavna razlika u odnosu na public (vidljivo svuda), private (samo unutar klase) i protected (unutar klase i njenih podklasa) je upravo u nivou vidljivosti po modulima.