Junior
Kas ir piekļuves modifikators 'internal' Kotlin un kā to izmantot?
sobes.tech AI
Atbilde no AI
Kotlin piekļuves modifikators internal nozīmē, ka deklarācija ir redzama tikai tajā pašā modulī. Modulis var būt Kotlin failu kopums, kas ir kompilēts kopā, piemēram:
- Gradle modulis (avota kopums).
- Maven modulis.
- Ant avota kopums.
Tas ir noderīgi, slēpjot īstenošanas detaļas modulī, padarot tās nepieejamas citu moduļu kodam.
internal var izmantot ar:
- Klase
- Saziņas interfeisi
- Objekti (object)
- Funkcijas
- Īpašības
- Konstruktorus
Piemērs:
// "module1" modulis
package com.example.module1
internal class InternalClass {
internal fun internalFunction() {
// Šis kods ir redzams tikai module1 iekšienē
}
}
// Šis objekts ir arī redzams tikai module1 iekšienē
internal object InternalObject {
internal val internalProperty = "Internal value"
}
// "module1" modulis
package com.example.module1
fun someFunctionInModule1() {
val internalCls = InternalClass() // Pieejams
internalCls.internalFunction() // Pieejams
println(InternalObject.internalProperty) // Pieejams
}
// "module2" modulis
package com.example.module2
import com.example.module1.InternalClass // Kompilācijas kļūda
import com.example.module1.InternalObject // Kompilācijas kļūda
fun someFunctionInModule2() {
// Nav iespējams izveidot InternalClass instanci vai piekļūt InternalObject
// val internalCls = InternalClass() // Nepieejams
// println(InternalObject.internalProperty) // Nepieejams
}
Galvenā atšķirība no public (redzams visur), private (redzams tikai klasē) un protected (redzams tikai klasē un tās apakšklasēs) ir tieši redzamības līmenis modulī.