Junior — Middle
Hogyan különböznek a hozzáférés módosítók a Java és Kotlin nyelvekben?
sobes.tech MI
Válasz az MI-től
Java és Kotlin esetén a hozzáférés módosítói hasonló célokat szolgálnak, de a készletük és viselkedésük különbözik:
-
Java:
public— minden helyről elérhető.protected— csomagon belüli és származtatott osztályokban való hozzáférés.- (package-private) — csak a csomagon belül elérhető (ha nincs megadva módosító).
private— csak az osztályon belül elérhető.
-
Kotlin:
public(alapértelmezett) — minden helyről elérhető.internal— a modulon belüli hozzáférés (pl. egy Gradle modulon belül).protected— származtatott osztályokban való hozzáférés, de csak ugyanabban a fájlban (ellentétben a Java-val, ahol a protected lehetővé teszi a hozzáférést a csomagon belül).private— az osztályon vagy fájlon belüli hozzáférés (ha a fájl szintjén van deklarálva).
A fő különbség az, hogy Kotlinban létezik az internal módosító, amely a láthatóságot a modulra korlátozza, és a protected Kotlinban nem ad hozzáférést a csomagon belül, csak származtatott osztályokban. Java-ban nincs internal, és a protected mind a csomagon belüli, mind a származtatott osztályokban való hozzáférést biztosítja.