Poďme sa pozrieť, ako sa triedy zapisujú v Kotline. Trieda sa definuje pomocou kľúčového slova class:
class Person {
val name: String = "Janko"
val age: Int = 25
fun greet() {
println("Ahoj, som $name a mam $age rokov")
}
}
fun main() {
val person = Person()
println(person.name) // Janko
println(person.age) // 25
person.greet() // Ahoj, som Janko a mam 25 rokov
}
Všimni si, že na rozdiel od C++ nemusíme písať
Person()s prázdnymi zátvorkami, ale pre jednoduchosť to robíme.
V Kotline je všetko public (verejné) implicitne, takže nemusíme písať žiadne modifikátory prístupu. Prístup k členom triedy máme automaticky.
Existuje viacero spôsobov, ako inicializovať atribúty triedy. Najčastejšie sa používa primárny konštruktor, ktorý sa zapisuje priamo v hlavičke triedy:
class Person(val name: String, val age: Int)
fun main() {
val person = Person("Janko", 25)
println(person.name) // Janko
println(person.age) // 25
}
Toto je vlastne skrátený zápis pre triedu s atribútmi a konštruktorom. val znamená, že atribút je len na čítanie. Ak ho chceme meniť, použijeme var:
class Counter(var count: Int)
fun main() {
val counter = Counter(0)
counter.count = 5 // OK, lebo je var
println(counter.count) // 5
}
Ak potrebujeme vykonať nejakú logiku pri inicializácii, použijeme blok init:
class Person(val name: String, var age: Int) {
init {
require(age >= 0) { "Vek nemoze byt zaporny" }
println("Vytvorena osoba: $name, $age rokov")
}
}
fun main() {
val person = Person("Janko", 25)
// Vytvorena osoba: Janko, 25 rokov
}
requireje funkcia, ktorá vyhodíIllegalArgumentExceptionak je podmienkafalse.
Vytvor triedu Student s atribútmi meno a ročník, metódou na výpis údajov a vytvor dva objekty.
Vytvor triedu Pocitadlo s meniteľným atribútom a metódami zvys a vynuluj.
Vytvor triedu Produkt s primárnym konštruktorom a v bloku init over, že cena nie je záporná.