Junior
Mi az az 'internal' hozzáférés módosító Kotlinban, és hogyan kell használni?
sobes.tech MI
Válasz az MI-től
A internal hozzáférés módosító Kotlinban azt jelenti, hogy a deklaráció azon a modullal belül látható. Egy modul lehet egy Kotlin fájlokból álló csoport, amelyeket együtt fordítanak le, például:
- Gradle modul (forráskód halmaz)
- Maven modul
- Ant forráskód halmaz
Ez hasznos a modulon belüli implementációs részletek elrejtésére, így azok nem elérhetők más modulok kódja számára.
Az internal használható:
- Osztályok
- Interfészek
- Objektumok (object)
- Függvények
- Tulajdonságok
- Konstruktorok
Használati példa:
// "module1" modul
package com.example.module1
internal class InternalClass {
internal fun internalFunction() {
// Ez a kód csak a module1-en belül látható
}
}
// Ez az objektum szintén csak a module1-en belül látható
internal object InternalObject {
internal val internalProperty = "Belső érték"
}
// "module1" modul
package com.example.module1
fun someFunctionInModule1() {
val internalCls = InternalClass() // Elérhető
internalCls.internalFunction() // Elérhető
println(InternalObject.internalProperty) // Elérhető
}
// "module2" modul
package com.example.module2
import com.example.module1.InternalClass // Fordítási hiba
import com.example.module1.InternalObject // Fordítási hiba
fun someFunctionInModule2() {
// Nem lehet példányt létrehozni az InternalClass-ból, vagy elérni az InternalObject-et
// val internalCls = InternalClass() // Nem elérhető
// println(InternalObject.internalProperty) // Nem elérhető
}
A fő különbség a public (mindenhol látható), private (csak osztályon belül) és protected (az osztályon belül és leszármazott osztályokban) között az, hogy az modul szintű láthatósági szintet határoz meg.