Sobes.tech
Junior

Реци о модификаторима приступа у Јави и Котлину.

sobes.tech АИ

Одговор од АИ

U Javi:

  • public: dostupan s bilo kojeg mjesta.
  • protected: dostupan unutar klase, paketa i podklasa.
  • (bez modifikatora): dostupan unutar paketa (package-private).
  • private: dostupan samo unutar klase.

U Kotlinu:

  • public: dostupan s bilo kojeg mjesta (zadano).
  • internal: dostupan unutar modula.
  • protected: dostupan unutar klase i njenih podklasa (razlikuje se od Jave u pogledu pristupa u paketu).
  • private: dostupan samo unutar klase/datoteke.

Razlike:

  • U Kotlinu ne postoji modifikator "package-private", njegov ekvivalent je internal s drugim opsegom (modul).
  • U Kotlinu protected ne pruža pristup unutar paketa kao u Javi.
  • U Kotlinu private se može koristiti i za deklaracije na razini top-level (funkcije, svojstva) u datoteci, čineći ih dostupnima samo unutar te datoteke.
// Primjer u Kotlinu
package com.example.myapp

private const val API_KEY = "secret" // Vidljiv samo u ovoj datoteci

class MyClass {
    private val internalState = 1 // Vidljiv samo unutar MyClass
    protected fun protectedMethod() {} // Vidljiv u MyClass i njenim podklasama
    internal fun internalMethod() {} // Vidljiv unutar modula
}