Sobes.tech
Junior

Pověz o modifikátorech přístupu v Java a Kotlin.

sobes.tech AI

Odpověď od AI

V Javě:

  • public: dostupný odkudkoliv.
  • protected: dostupný uvnitř třídy, balíčku a podtříd.
  • (bez modifikátoru): dostupný uvnitř balíčku (package-private).
  • private: dostupný pouze uvnitř třídy.

V Kotlinu:

  • public: dostupný odkudkoliv (výchozí).
  • internal: dostupný uvnitř modulu.
  • protected: dostupný uvnitř třídy a jejích podtříd (liší se od Java v přístupu v balíčku).
  • private: dostupný pouze uvnitř třídy/souboru.

Rozdíly:

  • V Kotlinu neexistuje modifikátor "package-private", jeho ekvivalent je internal s jiným scope (modul).
  • V Kotlinu protected neposkytuje přístup v rámci balíčku, jako v Java.
  • V Kotlinu lze private použít i pro deklarace na úrovni top-level (funkce, vlastnosti) v souboru, čímž je činí dostupnými pouze uvnitř tohoto souboru.
// Příklad v Kotlinu
package com.example.myapp

private const val API_KEY = "secret" // Viditelný pouze v tomto souboru

class MyClass {
    private val internalState = 1 // Viditelný pouze uvnitř MyClass
    protected fun protectedMethod() {} // Viditelný v MyClass a jejích podtřídách
    internal fun internalMethod() {} // Viditelný v rámci modulu
}