Sobes.tech
Junior

Mis on juurdepääsimu modifikaator 'internal' Kotlinis ja kuidas seda kasutada?

sobes.tech AI

Vastus AI-lt

Kotlin'i juurdepääsirežiim internal tähendab, et deklaratsioon on nähtav ainult sama mooduli sees. Moodul võib olla rühm Kotlin-faile, mis kompileeritakse koos, näiteks:

  • Gradle moodul (allikate kogum).
  • Maven moodul.
  • Ant allikate kogum.

See on kasulik, peites rakendusdetailid moodulis, muutes need teiste moodulite koodile kättesaamatuks.

internal saab kasutada:

  • Klassidega
  • Liidestega
  • Objekte (object)
  • Funktsioonidega
  • Omadustega
  • Konstruktoritega

Näide:

// "module1" moodul
package com.example.module1

internal class InternalClass {
    internal fun internalFunction() {
        // See kood on nähtav ainult module1 sees
    }
}

// See objekt on samuti nähtav ainult module1 sees
internal object InternalObject {
    internal val internalProperty = "Internal value"
}
// "module1" moodul
package com.example.module1

fun someFunctionInModule1() {
    val internalCls = InternalClass() // Saadaval
    internalCls.internalFunction()     // Saadaval
    println(InternalObject.internalProperty) // Saadaval
}
// "module2" moodul
package com.example.module2

import com.example.module1.InternalClass // Kompileerimisel viga
import com.example.module1.InternalObject // Kompileerimisel viga

fun someFunctionInModule2() {
    // Ei saa luua InternalClass eksemplari ega pääseda InternalObject'ile
    // val internalCls = InternalClass() // Ei saadaval
    // println(InternalObject.internalProperty) // Ei saadaval
}

Peamine erinevus public (nähtav kõikjal), private (nähtav ainult klassi sees) ja protected (nähtav ainult klassi ja selle alamklasside sees) vahel on just nähtavustase moodulites.