Junior
Opowiedz o modyfikatorach dostępu w Java i Kotlin.
sobes.tech AI
Odpowiedź od AI
W Java:
public: dostępny z dowolnego miejsca.protected: dostępny w obrębie klasy, pakietu i podklas.- (bez modyfikatora): dostępny w obrębie pakietu (package-private).
private: dostępny tylko w obrębie klasy.
W Kotlin:
public: dostępny z dowolnego miejsca (domyślnie).internal: dostępny w module.protected: dostępny w obrębie klasy i jej podklas (różni się od Java w zakresie dostępu w pakiecie).private: dostępny tylko w obrębie klasy/pliku.
Różnice:
- W Kotlinie nie ma modyfikatora "package-private", jego odpowiednikiem jest
internalz innym zakresem (modułem). - W Kotlinie
protectednie zapewnia dostępu w obrębie pakietu, jak w Java. - W Kotlinie
privatemożna używać także dla deklaracji na poziomie top-level (funkcji, właściwości) w pliku, czyniąc je dostępnymi tylko w tym pliku.
// Przykład w Kotlin
package com.example.myapp
private const val API_KEY = "secret" // Widoczny tylko w tym pliku
class MyClass {
private val internalState = 1 // Widoczny tylko w MyClass
protected fun protectedMethod() {} // Widoczny w MyClass i jej podklasach
internal fun internalMethod() {} // Widoczny w module
}