Sobes.tech
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.