Data Classes deklarieren
Kompakte Modellklassen
Data Classes deklarieren ist eine kostenlose Kotlin Academy-Lektion auf CoddyKit. Dies ist Lektion 1 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 Kotlin Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Kotlin Academy-Kurs umfasst insgesamt 4 Lektionen.
Klassen zum Speichern von Daten
Viele Klassen dienen ausschließlich dazu, einige Werte zusammenzufassen: einen Benutzer, einen Punkt oder ein Ergebnis.
Kotlin bietet dafür die Datenklasse, eine kompakte Möglichkeit, solche Modellklassen mit umfangreichem automatisch bereitgestelltem Verhalten zu deklarieren.
Eine Datenklasse deklarieren
Fügen Sie das Schlüsselwort data vor class ein und listen Sie die Eigenschaften im Konstruktor auf.
Diese eine Zeile liefert Ihnen bereits ein voll ausgestattetes Modell.
data class User(val name: String, val age: Int)
fun main() {
val u = User("Alice", 30)
println(u.name)
println(u.age)
}Automatisches toString
Eine Datenklasse generiert automatisch ein lesbares toString(). Beim Ausgeben des Objekts werden sein Klassenname und die Werte seiner Eigenschaften angezeigt.
Vergleichen Sie das mit einer regulären Klasse, die stattdessen einen kryptischen Hash ausgeben würde.
data class User(val name: String, val age: Int)
fun main() {
val u = User("Bob", 25)
println(u)
}Eigenschaften sind erforderlich
Eine Datenklasse muss in ihrem primären Konstruktor mindestens eine Eigenschaft deklarieren.
Jeder Parameter sollte val oder var sein, damit er zu einer Eigenschaft wird, die von den generierten Funktionen verwendet werden kann.
data class Point(val x: Int, val y: Int)
fun main() {
val p = Point(3, 4)
println(p)
}val- und var-Eigenschaften
Verwenden Sie val für schreibgeschützte Eigenschaften und var für veränderliche Eigenschaften.
Unveränderliche Datenklassen werden meist bevorzugt, weil sie leichter zu verstehen sind.
data class Counter(var count: Int)
fun main() {
val c = Counter(0)
c.count = 5
println(c)
}Standardwerte für Parameter
Wie jeder Konstruktor kann auch eine Datenklasse Standardwerte besitzen.
Dadurch können Aufrufer Parameter weglassen, für die sie keinen Wert festlegen müssen.
data class User(val name: String, val active: Boolean = true)
fun main() {
val u = User("Mia")
println(u)
}Benannte Argumente
Kombinieren Sie Datenklassen mit benannten Argumenten, um die Erstellung klar und selbsterklärend zu gestalten.
Das ist besonders hilfreich, wenn mehrere Eigenschaften denselben Typ haben.
data class Rect(val width: Int, val height: Int)
fun main() {
val r = Rect(width = 10, height = 5)
println(r)
}Methoden hinzufügen
Eine Datenklasse kann weiterhin einen Rumpf mit eigenen Funktionen und berechneten Eigenschaften besitzen.
Die generierten Funktionen stehen neben allem, was Sie selbst hinzufügen.
data class Circle(val radius: Double) {
fun area(): Double = 3.14159 * radius * radius
}
fun main() {
val c = Circle(2.0)
println(c.area())
}Eigenschaften außerhalb des Konstruktors
Nur Eigenschaften im primären Konstruktor werden von den generierten Funktionen verwendet.
Eine im Rumpf deklarierte Eigenschaft gehört zwar zum Objekt, wird aber von toString, equals und ähnlichen Funktionen ignoriert.
data class User(val name: String) {
var nickname: String = ""
}
fun main() {
val u = User("Alex")
u.nickname = "Al"
println(u) // nickname not shown
println(u.nickname)
}Wann Sie Datenklassen verwenden sollten
Verwenden Sie eine Datenklasse, wenn ein Objekt hauptsächlich Werte enthält:
- DTOs und API-Modelle
- Koordinaten, Bereiche und Ergebnisse
- Konfigurationspakete
Vermeiden Sie sie bei Klassen, die auf komplexem Verhalten oder Vererbung aufbauen.
Alles zusammenführen
Eine Datenklasse ist eine kompakte Modelldeklaration:
- Stellen Sie
datavoran und listen Sie die Eigenschaften auf - Sie erhalten
toString,equals,hashCodeundcopyautomatisch - Standardwerte, benannte Argumente und zusätzliche Methoden werden unterstützt
data class Book(val title: String, val pages: Int = 0)
fun main() {
val b = Book(title = "Kotlin", pages = 300)
println(b)
}Kurzer Test
Überprüfen Sie Ihr Verständnis der Deklaration von Datenklassen.
Zusammenfassung
Sie haben gelernt, Datenklassen zu deklarieren:
- Das Schlüsselwort
datageneriert Standardfunktionen - Eigenschaften des Konstruktors bestimmen das generierte Verhalten
- Standardwerte und benannte Argumente machen sie flexibel
Als Nächstes sehen Sie sich die generierten Funktionen copy und equals genauer an.
Häufig gestellte Fragen
Ist die Lektion „Data Classes deklarieren“ kostenlos?
Ja — der vollständige Text von „Data Classes deklarieren“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Kotlin Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Kotlin Academy-Kurs umfasst insgesamt 4 Lektionen.
Was lerne ich in „Data Classes deklarieren“?
Kompakte Modellklassen Du übst Kotlin 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 Kotlin Academy zu starten?
Keine Vorkenntnisse erforderlich. Kotlin 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 1 von 4.
Wie lange dauert die Lektion „Data Classes deklarieren“?
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 Kotlin Academy-Lektion Code schreiben und ausführen?
Ja. Jede Kotlin 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.
Alle Lektionen in diesem Kurs
- Data Classes deklarieren
- copy und equals
- Destrukturierende Deklarationen
- Data Classes in Collections