Junior
Модулҳои намоишӣ чистанд ва чӣ гуна онҳоро дар Kotlin истифода бурдан мумкин аст?
sobes.tech AI
Ҷавоб аз AI
Модификаторҳои намоёнӣ дар Kotlin муайян мекунанд, ки чӣ гуна эълонҳо (синфҳо, интерфейсҳо, функсияҳо, хосиятҳо) барои қисмҳои дигари барнома дастрас мебошанд.
Модификаторҳои асосии намоёнӣ:
public: Дар ҳама ҷо намоён. Модификатори пешфарз.internal: Танҳо дар дохили як модул намоён. Модул ба маҷмӯи файлҳои Kotlin, ки якҷоя компилют мешаванд, ишора мекунад.protected: Дар дохили синф ва синфҳои зерсинф (аз ҷумла аъзои, ки дар синфҳои наследӣ муайян шудаанд). Аз берун аз пакет намоён нест.private: Танҳо дар дохили файли, ки дар он эълон шудааст, намоён. Барои аъзои синф, танҳо дар дохили ҳамин синф (аз ҷумла object-и ҳамроҳ, синфҳои дарунӣ ва дохилӣ) намоён аст.
Истифодаи модификаторҳо:
- Дар синфҳо, интерфейсҳо, объектҳо ва конструкторҳои онҳо.
- Дар функсияҳо, хосиятҳо ва геттер/сеттери онҳо дар сатҳи боло (аз синфҳо берун).
- Дар аъзои синф (синфҳои дарунӣ, синфҳои дохилӣ, функсияҳо, хосиятҳо).
Масалан:
// Файл: example.kt
private const val PRIVATE_CONSTANT = 1 // Танҳо дар ин файл намоён
internal fun internalFunction() { // Танҳо дар дохили модул намоён
println("Функсияи дохилӣ")
}
open class BaseClass {
protected val protectedProperty = "Ҳимояшуда" // Дар ин синф ва синфҳои зерсинф намоён
fun publicMethod() { // Дар ҳама ҷо намоён (пешфарз public)
println("Функсияи умумӣ")
}
private fun privateMethod() { // Танҳо дар дохили BaseClass
println("Функсияи хусусӣ")
}
}
class DerivedClass : BaseClass() {
fun accessProtected() {
println("Дастрасӣ ба хосияти ҳимояшуда: $protectedProperty") // Дастрасӣ ба protected
// privateMethod() // Гурӯҳ: private дар синфҳои зерсинф намоён нест
}
}
fun main() {
val base = BaseClass()
base.publicMethod()
// base.protectedProperty // Гурӯҳ: protected дар берун аз синф ва синфҳои зерсинф намоён нест
val derived = DerivedClass()
derived.accessProtected()
internalFunction()
// PRIVATE_CONSTANT // Гурӯҳ: private дар сатҳи боло танҳо дар файли эълон намоён аст
}
| Модификатор | Дастрасӣ | Дар куҷо истифода бурда мешавад |
|---|---|---|
public |
Дар ҳама ҷо | Пешфарз, вақте ки дигар модификатор нишон дода нашудааст |
internal |
Дар дохили модул | Барои API дар дохили китобхона ё модул |
protected |
Дар дохили синф ва синфҳои зерсинф (барои аъзои синф) | Барои сохтани ҳиерархияҳои синфҳо бо меросгирӣ |
private |
Дар дохили файл (барои сатҳи боло); дар дохили синф (барои аъзои) | Барои пинҳон кардани тафсилоти иҷро дар дохили файл ё синф |