Sobes.tech
Intern

Mis on juurdepääsumu modifikaatorid?

sobes.tech AI

Vastus AI-lt

Kotlinis piekļuves modifikatori nosaka deklarāciju (klases, interfeisi, funkcijas, īpašības) redzamību. Tie kontrolē, kur šis elements var tikt izmantots.

Pieejamie modifikatori:

  • public (noklusējums): Redzams no jebkuras vietas.
  • private: Redzams tikai iekšā blokā, kur tas ir deklarēts (klasē, failā).
  • protected: Redzams klasē un visās tās apakšklasēs. Nav pieejams augstākā līmeņa locekļiem (definēts ārpus klases).
  • internal: Redzams tikai tajā pašā modulī.

Piemērs:

// fails: Example.kt

package com.example.app

private const val PRIVATE_CONSTANT = 1 // Redzams tikai šajā failā

public class PublicClass { // Redzams no jebkuras vietas

    private var privateProperty = 0 // Redzams tikai iekšā PublicClass

    protected open fun protectedMethod() { // Redzams iekšā PublicClass un tās apakšklasēs
        // ...
    }

    internal fun internalMethod() { // Redzams tikai modulī ComExampleApp
        // ...
    }
}

open class BaseClass {
    protected val protectedValue = 5 // Redzams iekšā BaseClass un apakšklasēs
}

class DerivedClass : BaseClass() {
    fun useProtectedValue() {
        println(protectedValue) // Pieeja pie protectedValue no apakšklases
    }
}