Sobes.tech
Junior

Kotlinдеги 'internal' кирүү модификатору эмне жана аны кантип колдонуу керек?

sobes.tech AI

AIден жооп

Kotlin-да internal кириш модификатору, эълондун ошол модуль ичинде көрүнөрүн билдирет. Модуль — бул бирге компиляцияланган Kotlin-файлдардын топтому, мисалы:

  • Gradle модулу (көз карандылык топтому).
  • Maven модулу.
  • Ant көз карандылык топтому.

Бул модуль ичинде ишке ашырылган деталдарды жашыруу жана башка модулдар кодуна жеткиликтүү болбойт кылуу үчүн пайдалуу.

internal төмөнкү элементтер менен колдонулушу мүмкүн:

  • Класстар
  • Интерфейстер
  • Объекттер (object)
  • Функциялар
  • Өзгөрмөлөр
  • Конструкторлор

Колдонуу мисалы:

// "module1" модул
package com.example.module1

internal class InternalClass {
    internal fun internalFunction() {
        // Бул код only module1 ичинде көрүнөт
    }
}

// Бул объект да only module1 ичинде көрүнөт
internal object InternalObject {
    internal val internalProperty = "Ички мааниси"
}
// "module1" модул
package com.example.module1

fun someFunctionInModule1() {
    val internalCls = InternalClass() // Жеткиликтүү
    internalCls.internalFunction()     // Жеткиликтүү
    println(InternalObject.internalProperty) // Жеткиликтүү
}
// "module2" модул
package com.example.module2

import com.example.module1.InternalClass // Компиляция катасы
import com.example.module1.InternalObject // Компиляция катасы

fun someFunctionInModule2() {
    // InternalClass экземплярин түзө албайсыз же InternalObjectке жеткиле албайсыз
    // val internalCls = InternalClass() // Жеткиликтүү эмес
    // println(InternalObject.internalProperty) // Жеткиликтүү эмес
}

Негизги айырма public (бардык жерде көрүнөт), private (тек класс ичинде), жана protected (класс жана анын подкласстары ичинде) менен салыштырганда, ал модулдар деңгээлиндеги көрүнүштүк деңгээлин белгилейт.