Sobes.tech
Junior

Kotlin-də 'internal' giriş modifikatoru nədir və necə istifadə olunur?

sobes.tech Süni İntellekt

AI-dan cavab

Kotlin-də giriş modifikatoru internal bəyanatın eyni modul daxilində görünə biləcəyini göstərir. Modul, birlikdə tərtib olunan Kotlin fayllarının toplusu ola bilər, məsələn:

  • Gradle modulu (mənbə kodu toplusu).
  • Maven modulu.
  • Ant mənbə toplusu.

Bu, modul daxilində həyata keçirilən detalları gizlətmək və onları digər modullardan əlçatan etməmək üçün faydalıdır.

internal aşağıdakı elementlərlə istifadə oluna bilər:

  • Sinflər
  • İnterfeyslər
  • Obektlər (object)
  • Funksiyalar
  • Xüsusiyyətlər
  • Konstruktorlar

İstifadə nümunəsi:

// "module1" modulu
package com.example.module1

internal class InternalClass {
    internal fun internalFunction() {
        // Bu kod yalnız module1 daxilində görünür
    }
}

// Bu obyekt də yalnız module1 daxilində görünür
internal object InternalObject {
    internal val internalProperty = "Daxili dəyər"
}
// "module1" modulu
package com.example.module1

fun someFunctionInModule1() {
    val internalCls = InternalClass() // Mövcuddur
    internalCls.internalFunction()     // Mövcuddur
    println(InternalObject.internalProperty) // Mövcuddur
}
// "module2" modulu
package com.example.module2

import com.example.module1.InternalClass // Tərtib xətası
import com.example.module1.InternalObject // Tərtib xətası

fun someFunctionInModule2() {
    // InternalClass nümunəsi yaradıla bilməz və InternalObject-ə müraciət edilə bilməz
    // val internalCls = InternalClass() // Mövcud deyil
    // println(InternalObject.internalProperty) // Mövcud deyil
}

Əsas fərq public (hər yerdə görünür), private (yalnız sinif daxilində) və protected (sinif və onun alt siniflərində) ilə müqayisədə, modul səviyyəsində görünürlük səviyyəsidir.