V Kotline sú všetky členy triedy implicitne public, čo znamená, že k nim má prístup ktokoľvek. Ak chceme niečo skryť, použijeme modifikátor private:
class BankAccount {
private var balance: Int = 0
fun deposit(amount: Int) {
if (amount > 0) {
balance += amount
}
}
fun getBalance(): Int = balance
}
fun main() {
val account = BankAccount()
account.deposit(100)
// account.balance // chyba kompilacie - balance je private
println(account.getBalance()) // 100
}
Private členy sú viditeľné len vo vnútri triedy. Toto je dôležité pre encapsulation - ukryjeme interné údaje a poskytneme len verejné rozhranie cez funkcie.
Okrem private a public poznáme aj protected - ten je viditeľný v danej triede a v jej podtriedach (dedičoch). O dedičnosti si povieme neskôr.
| Modifikátor | V rovnakej triede | V podtriede | Všade inde |
|---|---|---|---|
public |
áno | áno | áno |
private |
áno | nie | nie |
protected |
áno | áno | nie |
internalmodifikátor je viditeľný v rámci celého modulu (balíka), ale pre nás zatiaľ nie je dôležitý.
Vytvor triedu Teplomer s privátnou teplotou a verejnými metódami na jej nastavenie a prečítanie.
V triede Hrac skry počet životov a vytvor metódu, ktorá život odoberie len ak je ich viac než nula.
Označ vhodné atribúty triedy Pouzivatel ako public, private a protected a stručne zdôvodni voľbu.