Junior
Ce este modificatorul de acces 'internal' în Kotlin și cum îl utilizăm?
sobes.tech AI
Răspuns de la AI
Modificatorul de acces internal în Kotlin înseamnă că declarația este vizibilă în interiorul aceluiași modul. Un modul poate fi un set de fișiere Kotlin compilate împreună, de exemplu:
- Un modul Gradle (set de cod sursă).
- Un modul Maven.
- Un set de cod Ant.
Acest lucru este util pentru a ascunde detaliile de implementare în interiorul modulului, făcându-le inaccesibile pentru codul din alte module.
internal poate fi utilizat cu:
- Clase
- Interfețe
- Obiecte (object)
- Funcții
- Proprietăți
- Constructori
Exemplu de utilizare:
// Modul "module1"
package com.example.module1
internal class InternalClass {
internal fun internalFunction() {
// Acest cod este vizibil doar în interiorul module1
}
}
// Acest obiect este, de asemenea, vizibil doar în interiorul module1
internal object InternalObject {
internal val internalProperty = "Valoare internă"
}
// Modul "module1"
package com.example.module1
fun someFunctionInModule1() {
val internalCls = InternalClass() // Disponibil
internalCls.internalFunction() // Disponibil
println(InternalObject.internalProperty) // Disponibil
}
// Modul "module2"
package com.example.module2
import com.example.module1.InternalClass // Eroare de compilare
import com.example.module1.InternalObject // Eroare de compilare
fun someFunctionInModule2() {
// Nu se poate crea o instanță a InternalClass sau accesa InternalObject
// val internalCls = InternalClass() // Indisponibil
// println(InternalObject.internalProperty) // Indisponibil
}
Principalul diferență față de public (vizibil peste tot), private (doar în interiorul clasei) și protected (în interiorul clasei și subclasele sale) constă în nivelul de vizibilitate pe module.