Der Konstruktor steht direkt im Klassenkopf: class Person(val name: String, var alter: Int). Klassen sind standardmäßig final; mit open erlaubst du Vererbung. Eine data class erzeugt automatisch toString, equals, hashCode und copy, ideal für reine Datenträger.
Mit object definierst du Singletons, mit companion object Klassenmember.
class Konto(val inhaber: String) {
var stand = 0.0
private set
fun einzahlen(betrag: Double) {
if (betrag > 0) stand += betrag
}
}
data class Punkt(val x: Int, val y: Int)
fun main() {
val k = Konto("Mia")
k.einzahlen(50.0)
println(k.stand)
val p = Punkt(1, 2)
println(p) // Punkt(x=1, y=2)
println(p.copy(y = 5))
}Merke
Konstruktor im Klassenkopf
data classliefert toString, equals, copyKlassen sind standardmäßig final
Aufgabe
Lege eine `data class Buch(titel, seiten)` an und kopiere sie mit geänderter Seitenzahl.