Sobes.tech
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.