Sobes.tech
Junior

Räägi Java ja Kotlin'i juurdepääsumu modifikaatoritest.

sobes.tech AI

Vastus AI-lt

Java-s:

  • public: kättesaadav igal pool.
  • protected: kättesaadav klassi, paketi ja alamsklassides.
  • (ilma modifikaatorita): kättesaadav paketi sees (package-private).
  • private: kättesaadav ainult klassi sees.

Kotlin-s:

  • public: kättesaadav igal pool (vaikimisi).
  • internal: kättesaadav moodulis.
  • protected: kättesaadav klassi ja selle alamsklasside sees (erinevalt Java-st, kus see on ka paketi sees).
  • private: kättesaadav ainult klassi/ failis.

Erinevused:

  • Kotlin-s puudub modifikaator "package-private", selle analoog on internal, kuid teise scope-iga (moodul).
  • Kotlin-s protected ei anna ligipääsu paketi sees nagu Java-s.
  • Kotlin-s private saab kasutada ka top-level deklaratsioonidele (funktsioonid, omadused) failis, muutes need kättesaadavaks ainult selles failis.
// Kotlin näide
package com.example.myapp

private const val API_KEY = "secret" // Nähtav ainult selles failis

class MyClass {
    private val internalState = 1 // Nähtav ainult MyClass sees
    protected fun protectedMethod() {} // Nähtav MyClass ja selle alamsklassides
    internal fun internalMethod() {} // Nähtav moodulis
}