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
protectednem biztosít hozzáférést a csomagon belül, mint a Java. - Kotlinban a
privatehaszná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ó
}