Sobes.tech
Junior

Vorbește despre modificatorii de acces în Java și Kotlin.

sobes.tech AI

Răspuns de la AI

În Java:

  • public: accesibil de oriunde.
  • protected: accesibil în interiorul clasei, pachetului și subclasele.
  • (fără modificator): accesibil în interiorul pachetului (package-private).
  • private: accesibil doar în interiorul clasei.

În Kotlin:

  • public: accesibil de oriunde (implicit).
  • internal: accesibil în cadrul modulului.
  • protected: accesibil în interiorul clasei și subclasele sale (diferit de Java în privința accesului în pachet).
  • private: accesibil doar în interiorul clasei/fișierului.

Diferențe:

  • În Kotlin, nu există modificatorul "package-private", echivalentul său fiind internal cu un scop diferit (modul).
  • În Kotlin, protected nu oferă acces în interiorul pachetului, ca în Java.
  • În Kotlin, private poate fi folosit și pentru declarații de nivel superior (funcții, proprietăți) în fișier, făcându-le accesibile doar în interiorul acestui fișier.
// Exemplu în Kotlin
package com.example.myapp

private const val API_KEY = "secret" // Vizibil doar în acest fișier

class MyClass {
    private val internalState = 1 // Vizibil doar în MyClass
    protected fun protectedMethod() {} // Vizibil în MyClass și subclasele sale
    internal fun internalMethod() {} // Vizibil în modul
}