Classi di dati
Classi concise per conservare dati.
Classi di dati è una lezione Android Academy gratuita su CoddyKit. Questa è la lezione 4 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Android Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Android Academy include 4 lezioni in totale.
Che cos'è una data class?
Una data class è una classe progettata per contenere dati. Kotlin genera automaticamente metodi utili per questa classe.
La dichiara scrivendo data prima di class.
Dichiarare una data class
Una data class deve avere almeno un parametro nel costruttore primario, contrassegnato con val o var.
Ecco un oggetto User che memorizza un nome e un'età.
data class User(val name: String, val age: Int)
fun main() {
val u = User("Ada", 30)
println(u.name)
}Un toString leggibile
Una classe normale stampa un indirizzo poco comprensibile. Una data class genera un toString chiaro che mostra ogni proprietà.
Questo semplifica notevolmente il debugging.
data class User(val name: String, val age: Int)
fun main() {
val u = User("Ada", 30)
println(u)
}Confrontare con equals
Le data class vengono confrontate in base al contenuto, non all'identità. Due oggetti con gli stessi valori delle proprietà sono uguali con ==.
Una classe normale li considererebbe diversi.
data class Point(val x: Int, val y: Int)
fun main() {
val a = Point(1, 2)
val b = Point(1, 2)
println(a == b)
}La funzione copy
La funzione copy generata crea un nuovo oggetto basato su uno esistente. Può modificare solo le proprietà che specifica.
L'oggetto originale rimane invariato.
data class User(val name: String, val age: Int)
fun main() {
val u = User("Ada", 30)
val older = u.copy(age = 31)
println(older)
}Destrutturazione
Le data class supportano la destrutturazione: consentono di estrarre le proprietà in variabili separate con una sola riga.
L'ordine segue quello del costruttore.
data class User(val name: String, val age: Int)
fun main() {
val (name, age) = User("Sam", 25)
println(name + " " + age)
}Anche i valori predefiniti funzionano
Come per qualsiasi costruttore, i parametri delle data class possono avere valori predefiniti.
In questo modo chi chiama il costruttore può omettere i campi che non gli servono.
data class User(val name: String, val active: Boolean = true)
fun main() {
val u = User("Lee")
println(u)
}hashCode per le collection
Le data class generano anche hashCode, quindi si comportano correttamente come chiavi in un Set o in una Map.
Gli oggetti uguali producono lo stesso hash, consentendo di rilevare i duplicati.
data class Point(val x: Int, val y: Int)
fun main() {
val set = setOf(Point(1, 1), Point(1, 1))
println(set.size)
}Quando usare le data class
Scelga una data class quando un oggetto principalmente trasporta valori invece di avere comportamenti complessi.
- Risposte delle API
- Stato dell'interfaccia utente in Android
- Record di database
Per oggetti ricchi di logica, una classe normale è più adatta.
Le data class fanno risparmiare lavoro
Una sola parola chiave data fornisce toString, equals, hashCode, copy e la destrutturazione.
È una grande quantità di codice ripetitivo che non dovrà più scrivere o gestire manualmente.
Data class e classe normale
Una classe normale confronta gli oggetti in base all'identità e stampa un riferimento alla memoria. Una data class confronta gli oggetti in base al contenuto e ne stampa i valori.
La parola chiave data abilita tutti questi comportamenti generati automaticamente.
class Plain(val x: Int)
data class Smart(val x: Int)
fun main() {
println(Plain(1) == Plain(1))
println(Smart(1) == Smart(1))
}Verifica rapida
Verifichi la sua comprensione delle data class.
Riepilogo
Ha imparato che una data class genera automaticamente toString, equals, hashCode, copy e il supporto alla destrutturazione.
Sono ideali per oggetti che trasportano valori, come lo stato dell'interfaccia utente e i modelli delle API. Ora ha trattato funzioni, classi, costruttori e data class in Kotlin.
Domande Frequenti
La lezione «Classi di dati» è gratuita?
Sì — il testo completo di «Classi di dati» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Android Academy, passa a CoddyKit PRO. Il corso Android Academy include 4 lezioni in totale.
Cosa imparerò in «Classi di dati»?
Classi concise per conservare dati. Eserciti Android Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.
Ho bisogno di esperienza per iniziare Android Academy?
Non è richiesta alcuna esperienza precedente. Android Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 4 di 4.
Quanto tempo richiede la lezione «Classi di dati»?
La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.
Posso scrivere ed eseguire codice in questa lezione Android Academy?
Sì. Ogni lezione Android Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.
Tutte le lezioni di questo corso
- Dichiarare funzioni
- Classi e proprietà
- Costruttori e init
- Classi di dati