Sobes.tech
Junior

Pastāsti par piekļuves modifikatoriem Java un Kotlin.

sobes.tech AI

Atbilde no AI

Java:

  • public: pieejams no jebkurienes vietas.
  • protected: pieejams klases, pakotnes un apakšklases iekšienē.
  • (bez modifikatora): pieejams pakotnē (package-private).
  • private: pieejams tikai klases iekšienē.

Kotlin:

  • public: pieejams no jebkurienes (noklusējums).
  • internal: pieejams modulī.
  • protected: pieejams klases un tās apakšklases iekšienē (atšķiras no Java ar piekļuvi pakotnē).
  • private: pieejams tikai klases/faila iekšienē.

Atšķirības:

  • Kotlin nav "package-private" modifikatora, tā ekvivalents ir internal, bet ar citu scope (moduli).
  • Kotlin protected nesniedz piekļuvi pakotnē, kā Java.
  • Kotlin private var tikt izmantots arī top-level deklarācijām (funkcijām, īpašībām) failā, padarot tās pieejamas tikai šajā failā.
// Kotlin piemērs
package com.example.myapp

private const val API_KEY = "secret" // Redzams tikai šajā failā

class MyClass {
    private val internalState = 1 // Redzams tikai iekšā MyClass
    protected fun protectedMethod() {} // Redzams MyClass un tās apakšklasēs
    internal fun internalMethod() {} // Redzams modulī
}