Študijné materiály

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.

7.1.1 Protected

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

internal modifikátor je viditeľný v rámci celého modulu (balíka), ale pre nás zatiaľ nie je dôležitý.

Úlohy

Úloha 1

Vytvor triedu Teplomer s privátnou teplotou a verejnými metódami na jej nastavenie a prečítanie.

Úloha 2

V triede Hrac skry počet životov a vytvor metódu, ktorá život odoberie len ak je ich viac než nula.

Úloha 3

Označ vhodné atribúty triedy Pouzivatel ako public, private a protected a stručne zdôvodni voľbu.