Sobes.tech
Junior

Pasakok apie prieigos modifikatorius Java ir Kotlin.

sobes.tech AI

Atsakymas iš AI

Java:

  • public: prieinama iš bet kurios vietos.
  • protected: prieinama klasės, paketo ir pogrupių viduje.
  • (be modifikatoriaus): prieinama paketo viduje (package-private).
  • private: prieinama tik klasės viduje.

Kotlin:

  • public: prieinama iš bet kurios vietos (numatyta).
  • internal: prieinama modulyje.
  • protected: prieinama klasės ir jos pogrupių viduje (skiriasi nuo Java, nes Java leidžia prieigą ir pakete).
  • private: prieinama tik klasės/ failo viduje.

Skirtumai:

  • Kotlin nėra "package-private" modifikatoriaus, jo analogas yra internal, bet su kitu scope (moduliu).
  • Kotlin protected nesuteikia prieigos pakete, kaip Java.
  • Kotlin private gali būti naudojamas ir top-level deklaracijoms (funkcijoms, savybėms) faile, padarant jas prieinamas tik šiame faile.
// Kotlin pavyzdys
package com.example.myapp

private const val API_KEY = "secret" // Matomas tik šiame faile

class MyClass {
    private val internalState = 1 // Matomas tik viduje MyClass
    protected fun protectedMethod() {} // Matomas MyClass ir jos pogrupiuose
    internal fun internalMethod() {} // Matomas modulyje
}