Sobes.tech
Junior

Porozprávaj o modifikátoroch prístupu v Jave a Kotline.

sobes.tech AI

Odpoveď od AI

V Jave:

  • public: dostupný odkiaľkoľvek.
  • protected: dostupný v rámci triedy, balíka a podtried.
  • (bez modifikátora): dostupný v rámci balíka (package-private).
  • private: dostupný iba v rámci triedy.

V Kotlin:

  • public: dostupný odkiaľkoľvek (predvolené).
  • internal: dostupný v rámci modulu.
  • protected: dostupný v rámci triedy a jej podtried (líši sa od Javy v prístupe v balíku).
  • private: dostupný iba v rámci triedy/súboru.

Rozdiely:

  • V Kotlin neexistuje modifikátor "package-private", jeho ekvivalent je internal s iným rozsahom (modul).
  • V Kotlin protected neposkytuje prístup v rámci balíka ako v Jave.
  • V Kotlin private možno použiť aj pre deklarácie na úrovni top-level (funkcie, vlastnosti) v súbore, čím ich robí dostupnými iba v tomto súbore.
// Príklad v Kotlin
package com.example.myapp

private const val API_KEY = "secret" // Viditeľný iba v tomto súbore

class MyClass {
    private val internalState = 1 // Viditeľný iba v rámci MyClass
    protected fun protectedMethod() {} // Viditeľný v MyClass a jej podtriedach
    internal fun internalMethod() {} // Viditeľný v rámci modulu
}