Datenklassen
Kompakte Klassen zum Speichern von Daten.
Datenklassen ist eine kostenlose Android Academy-Lektion auf CoddyKit. Dies ist Lektion 4 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Android Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Android Academy-Kurs umfasst insgesamt 4 Lektionen.
Was ist eine Datenklasse?
Eine Datenklasse ist eine Klasse, die zum Speichern von Daten dient. Kotlin generiert dafür automatisch nützliche Methoden.
Sie deklarieren eine Datenklasse, indem Sie data vor class schreiben.
Eine Datenklasse deklarieren
Eine Datenklasse benötigt mindestens einen Parameter im primären Konstruktor, der jeweils mit val oder var gekennzeichnet ist.
Hier ist ein User, der einen Namen und ein Alter speichert.
data class User(val name: String, val age: Int)
fun main() {
val u = User("Ada", 30)
println(u.name)
}Ein lesbares toString
Eine normale Klasse gibt eine schwer verständliche Adresse aus. Eine Datenklasse generiert ein übersichtliches toString, das jede Eigenschaft anzeigt.
Das erleichtert das Debuggen erheblich.
data class User(val name: String, val age: Int)
fun main() {
val u = User("Ada", 30)
println(u)
}Vergleichen mit equals
Datenklassen werden anhand ihres Inhalts und nicht anhand ihrer Identität verglichen. Zwei Objekte mit denselben Eigenschaftswerten sind mit == gleich.
Eine normale Klasse würde sie als unterschiedlich betrachten.
data class Point(val x: Int, val y: Int)
fun main() {
val a = Point(1, 2)
val b = Point(1, 2)
println(a == b)
}Die copy-Funktion
Die generierte Funktion copy erstellt anhand eines vorhandenen Objekts ein neues Objekt. Sie können gezielt nur die von Ihnen angegebenen Eigenschaften ändern.
Das ursprüngliche Objekt bleibt unverändert.
data class User(val name: String, val age: Int)
fun main() {
val u = User("Ada", 30)
val older = u.copy(age = 31)
println(older)
}Destrukturierung
Datenklassen unterstützen die Destrukturierung: Dabei werden Eigenschaften in einer einzigen Zeile in separate Variablen entpackt.
Die Reihenfolge entspricht der des Konstruktors.
data class User(val name: String, val age: Int)
fun main() {
val (name, age) = User("Sam", 25)
println(name + " " + age)
}Standardwerte funktionieren ebenfalls
Wie bei jedem Konstruktor können Parameter einer Datenklasse Standardwerte besitzen.
Dadurch können Aufrufer nicht benötigte Felder weglassen.
data class User(val name: String, val active: Boolean = true)
fun main() {
val u = User("Lee")
println(u)
}hashCode für Collections
Datenklassen generieren außerdem hashCode und verhalten sich dadurch korrekt als Schlüssel in einem Set oder einer Map.
Gleiche Objekte erzeugen denselben Hashwert, sodass Duplikate erkannt werden.
data class Point(val x: Int, val y: Int)
fun main() {
val set = setOf(Point(1, 1), Point(1, 1))
println(set.size)
}Wann Sie Datenklassen verwenden sollten
Verwenden Sie eine Datenklasse, wenn ein Objekt hauptsächlich Werte transportiert und kein komplexes Verhalten besitzt.
- API-Antworten
- UI-Zustand in Android
- Datenbankdatensätze
Für Objekte mit umfangreicher Logik eignet sich eine normale Klasse besser.
Datenklassen sparen Arbeit
Ein einziges Schlüsselwort data stellt Ihnen toString, equals, hashCode, copy und die Destrukturierung zur Verfügung.
Damit müssen Sie viel weniger Standardcode von Hand schreiben oder pflegen.
Datenklasse im Vergleich zur normalen Klasse
Eine normale Klasse wird anhand ihrer Identität verglichen und gibt eine Speicherreferenz aus. Eine Datenklasse wird anhand ihres Inhalts verglichen und gibt ihre Werte aus.
Das Schlüsselwort data aktiviert all diese automatisch generierten Verhaltensweisen.
class Plain(val x: Int)
data class Smart(val x: Int)
fun main() {
println(Plain(1) == Plain(1))
println(Smart(1) == Smart(1))
}Kurzer Test
Testen Sie Ihr Verständnis von Datenklassen.
Zusammenfassung
Sie haben gelernt, dass eine Datenklasse automatisch toString, equals, hashCode, copy und die Unterstützung für Destrukturierung generiert.
Sie eignen sich ideal für Objekte, die Werte transportieren, etwa UI-Zustände und API-Modelle. Damit haben Sie in Kotlin nun Funktionen, Klassen, Konstruktoren und Datenklassen behandelt.
Häufig gestellte Fragen
Ist die Lektion „Datenklassen“ kostenlos?
Ja — der vollständige Text von „Datenklassen“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Android Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Android Academy-Kurs umfasst insgesamt 4 Lektionen.
Was lerne ich in „Datenklassen“?
Kompakte Klassen zum Speichern von Daten. Du übst Android Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.
Brauche ich Erfahrung, um Android Academy zu starten?
Keine Vorkenntnisse erforderlich. Android Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 4 von 4.
Wie lange dauert die Lektion „Datenklassen“?
Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.
Kann ich in dieser Android Academy-Lektion Code schreiben und ausführen?
Ja. Jede Android Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.