Sobes.tech
Junior

Beszélj a hozzáférés módosítókról Java és Kotlin nyelven.

sobes.tech MI

Válasz az MI-től

Java-ban:

  • public: bárhonnan elérhető.
  • protected: osztályon belül, csomagon belül és származtatott osztályokban elérhető.
  • (módosító nélkül): csomagon belül elérhető (package-private).
  • private: csak az osztályon belül elérhető.

Kotlinban:

  • public: bárhonnan elérhető (alapértelmezett).
  • internal: a modullal belül elérhető.
  • protected: az osztályon belül és származtatott osztályokban elérhető (különbözik a Java-tól a csomagon belüli hozzáférésben).
  • private: csak az osztály/fájl belül elérhető.

Különbségek:

  • Kotlinban nincs "package-private" módosító, ennek megfelelője az internal, de más scope-ot (modul) jelent.
  • Kotlinban a protected nem biztosít hozzáférést a csomagon belül, mint a Java.
  • Kotlinban a private használható top-level deklarációkra (függvények, tulajdonságok) is, így csak ebben a fájlban érhetők el.
// Kotlin példakód
package com.example.myapp

private const val API_KEY = "secret" // Csak ebben a fájlban látható

class MyClass {
    private val internalState = 1 // Csak a MyClass belül látható
    protected fun protectedMethod() {} // Látható a MyClass-ben és leszármazott osztályaiban
    internal fun internalMethod() {} // A modulban látható
}