Deklarera dataklasser
Kompakta modellklasser
Deklarera dataklasser är en gratis lektion i Kotlin Academy på CoddyKit. Detta är lektion 1 av 4. Du kan läsa vilka 3 lektioner som helst i den här lärvägen kostnadsfritt i sin helhet – därefter låser CoddyKit PRO upp alla lektioner, plus praktisk övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Den ingår i lärvägen för Kotlin Academy, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i Kotlin Academy innehåller totalt 4 lektioner.
Klasser för att lagra data
Många klasser finns endast för att samla några värden: en användare, en punkt eller ett resultat.
Kotlin ger er dataklassen, ett kortfattat sätt att deklarera sådana modellklasser med mycket funktionalitet på köpet.
Deklarera en dataklass
Lägg till nyckelordet data före class och ange egenskaperna i konstruktorn.
Den enda raden ger er en komplett modell.
data class User(val name: String, val age: Int)
fun main() {
val u = User("Alice", 30)
println(u.name)
println(u.age)
}Automatiskt genererad toString
En dataklass genererar automatiskt en läsbar toString(). När objektet skrivs ut visas klassnamnet och egenskapsvärdena.
Jämför detta med en vanlig klass, som skulle skriva ut en svårtolkad hash.
data class User(val name: String, val age: Int)
fun main() {
val u = User("Bob", 25)
println(u)
}Egenskaper krävs
En dataklass måste deklarera minst en egenskap i sin primärkonstruktor.
Varje parameter bör vara val eller var så att den blir en egenskap som de genererade funktionerna kan använda.
data class Point(val x: Int, val y: Int)
fun main() {
val p = Point(3, 4)
println(p)
}Egenskaper med val och var
Använd val för skrivskyddade egenskaper och var för föränderliga.
Oföränderliga dataklasser föredras vanligtvis eftersom de är lättare att förstå och resonera om.
data class Counter(var count: Int)
fun main() {
val c = Counter(0)
c.count = 5
println(c)
}Standardvärden för parametrar
Precis som alla konstruktorer kan en dataklass ha standardvärden.
Det gör att anropare kan utelämna parametrar som de inte behöver ange.
data class User(val name: String, val active: Boolean = true)
fun main() {
val u = User("Mia")
println(u)
}Namngivna argument
Kombinera dataklasser med namngivna argument för en tydlig och självförklarande konstruktion.
Det är särskilt användbart när flera egenskaper har samma typ.
data class Rect(val width: Int, val height: Int)
fun main() {
val r = Rect(width = 10, height = 5)
println(r)
}Lägga till metoder
En dataklass kan fortfarande ha en klasskropp med egna funktioner och beräknade egenskaper.
De genererade funktionerna finns sida vid sida med det ni lägger till.
data class Circle(val radius: Double) {
fun area(): Double = 3.14159 * radius * radius
}
fun main() {
val c = Circle(2.0)
println(c.area())
}Egenskaper utanför konstruktorn
Endast egenskaper i primärkonstruktorn används av de genererade funktionerna.
En egenskap som deklareras i klasskroppen är en del av objektet, men ignoreras av toString, equals och liknande.
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)
}När ska dataklasser användas
Välj en dataklass när ett objekt huvudsakligen innehåller värden:
- DTO:er och API-modeller
- Koordinater, intervall och resultat
- Konfigurationssamlingar
Undvik dem för klasser som bygger på komplex funktionalitet eller arv.
Sätta ihop delarna
En dataklass är en kompakt modelldeklaration:
- Inled med
dataoch ange egenskaperna - Få
toString,equals,hashCodeochcopyautomatiskt - Stöder standardvärden, namngivna argument och extra metoder
data class Book(val title: String, val pages: Int = 0)
fun main() {
val b = Book(title = "Kotlin", pages = 300)
println(b)
}Snabbkontroll
Testa er förståelse av hur dataklasser deklareras.
Sammanfattning
Ni har lärt er att deklarera dataklasser:
- Nyckelordet
datagenererar standardfunktioner - Egenskaper i konstruktorn styr det genererade beteendet
- Standardvärden och namngivna argument gör dem flexibla
Härnäst utforskar ni de genererade funktionerna copy och equals mer ingående.
Lär dig Kotlin med en AI-lärare – gratis
Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.
- Kurser
- 51
- Lektioner
- 203
Vanliga frågor
Är lektionen ”Deklarera dataklasser” gratis?
Ja – du kan läsa vilka 3 lektioner som helst i lärvägen Kotlin Academy, inklusive ”Deklarera dataklasser”, kostnadsfritt i sin helhet här på webben. Därefter låser CoddyKit PRO upp alla lektioner, plus interaktiv övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Kursen i Kotlin Academy innehåller totalt 4 lektioner.
Vad lär jag mig i ”Deklarera dataklasser”?
Kompakta modellklasser Ni övar på Kotlin Academy med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.
Behöver jag någon erfarenhet för att börja lära mig Kotlin Academy?
Du behöver inga förkunskaper. Utbildningen i Kotlin Academy på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 1 av 4.
Hur lång tid tar lektionen ”Deklarera dataklasser”?
De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.
Kan jag skriva och köra kod i den här Kotlin Academy-lektionen?
Ja. Varje Kotlin Academy-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.
Alla lektioner i den här kursen
- Deklarera dataklasser
- copy och equals
- Destrukturerande deklarationer
- Dataklasser i samlingar