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
protectedei anna ligipääsu paketi sees nagu Java-s. - Kotlin-s
privatesaab 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
}