Junior
Τι είναι ο τροποποιητής πρόσβασης 'internal' στο Kotlin και πώς τον χρησιμοποιούμε;
sobes.tech AI
Απάντηση από AI
Կողմնորոշիչ internal Kotlin-ում նշանակում է, որ հայտարարությունը տեսանելի է նույն մոդուլում։ Մոդուլը կարող է լինել Kotlin ֆայլերի հավաքածու, որը համատեղ կոմպիլացվում է, օրինակ՝
- Gradle մոդուլ (կոդի հավաքածու)
- Maven մոդուլ
- Ant կոդի հավաքածու
Սա օգտակար է մոդուլի ներսում իրականացման մանրամասները թաքցնելու համար, դարձնելով դրանք անհասանելի այլ մոդուլների կոդի համար։
internal կարելի է օգտագործել հետևյալ տարրերի հետ՝
- Սինֆակտներ
- Ինտերֆեյսներ
- Obektներ (object)
- Ֆունկցիաներ
- Գույքներ
- Կառուցապատողներ
Օգտագործման օրինակ՝
// "module1" մոդուլ
package com.example.module1
internal class InternalClass {
internal fun internalFunction() {
// Այս կոդը միայն `module1` ներսում է տեսանելի
}
}
// Այս obektը նույնպես միայն `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 (դասի և նրա ենթակլասների ներսում) միջև այն է, որ այն սահմանափակված է մոդուլների մակարդակով։