Sobes.tech
Junior

Vertel over toegangsmutators in Java en Kotlin.

sobes.tech AI

Antwoord van AI

In Java:

  • public: toegankelijk vanaf elke plek.
  • protected: toegankelijk binnen de klasse, het pakket en subklassen.
  • (zonder modifier): toegankelijk binnen het pakket (package-private).
  • private: alleen binnen de klasse toegankelijk.

In Kotlin:

  • public: toegankelijk vanaf elke plek (standaard).
  • internal: toegankelijk binnen het module.
  • protected: toegankelijk binnen de klasse en haar subklassen (verschilt van Java qua toegang binnen het pakket).
  • private: alleen binnen de klasse/bestand toegankelijk.

Verschillen:

  • In Kotlin bestaat de modifier "package-private" niet, het equivalente is internal met een andere scope (het module).
  • In Kotlin biedt protected geen toegang binnen het pakket zoals in Java.
  • In Kotlin kan private ook worden gebruikt voor top-level declaraties (functies, eigenschappen) in een bestand, waardoor ze alleen binnen dat bestand toegankelijk zijn.
// Voorbeeld in Kotlin
package com.example.myapp

private const val API_KEY = "secret" // Alleen zichtbaar in dit bestand

class MyClass {
    private val internalState = 1 // Alleen zichtbaar binnen MyClass
    protected fun protectedMethod() {} // Zichtbaar in MyClass en haar subklassen
    internal fun internalMethod() {} // Zichtbaar binnen de module
}