0Pricing
Kotlin Academy · Lezione

Dichiarazione delle data class

Classi modello concise

Dichiarazione delle data class è una lezione Kotlin Academy gratuita su CoddyKit. Questa è la lezione 1 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 Kotlin Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Kotlin Academy include 4 lezioni in totale.

Classi per contenere dati

Molte classi servono solo a raggruppare alcuni valori: un utente, un punto, un risultato.

Kotlin offre la data class, un modo conciso per dichiarare queste classi modello con molte funzionalità generate automaticamente.

Dichiarare una data class

Aggiunga la parola chiave data prima di class ed elenchi le proprietà nel costruttore.

Quella singola riga fornisce un modello completo.

data class User(val name: String, val age: Int)

fun main() {
    val u = User("Alice", 30)
    println(u.name)
    println(u.age)
}

toString automatico

Una data class genera automaticamente un toString() leggibile. Stampando l'oggetto vengono mostrati il nome della classe e i valori delle proprietà.

Lo confronti con una classe normale, che stamperebbe un hash criptico.

data class User(val name: String, val age: Int)

fun main() {
    val u = User("Bob", 25)
    println(u)
}

Le proprietà sono obbligatorie

Una data class deve dichiarare almeno una proprietà nel costruttore primario.

Ogni parametro dovrebbe essere val o var, così da diventare una proprietà utilizzabile dalle funzioni generate.

data class Point(val x: Int, val y: Int)

fun main() {
    val p = Point(3, 4)
    println(p)
}

Proprietà val e var

Usi val per le proprietà di sola lettura e var per quelle modificabili.

Di solito si preferiscono le data class immutabili, perché sono più facili da comprendere e gestire.

data class Counter(var count: Int)

fun main() {
    val c = Counter(0)
    c.count = 5
    println(c)
}

Valori predefiniti dei parametri

Come qualsiasi costruttore, una data class può avere valori predefiniti.

In questo modo chi la utilizza può omettere i parametri che non deve impostare.

data class User(val name: String, val active: Boolean = true)

fun main() {
    val u = User("Mia")
    println(u)
}

Argomenti denominati

Combini le data class con gli argomenti denominati per ottenere una costruzione chiara e autoesplicativa.

È particolarmente utile quando diverse proprietà condividono lo stesso tipo.

data class Rect(val width: Int, val height: Int)

fun main() {
    val r = Rect(width = 10, height = 5)
    println(r)
}

Aggiungere metodi

Una data class può comunque avere un corpo con funzioni proprie e proprietà calcolate.

Le funzioni generate coesistono con tutto ciò che aggiunge.

data class Circle(val radius: Double) {
    fun area(): Double = 3.14159 * radius * radius
}

fun main() {
    val c = Circle(2.0)
    println(c.area())
}

Proprietà esterne al costruttore

Solo le proprietà del costruttore primario vengono utilizzate dalle funzioni generate.

Una proprietà dichiarata nel corpo fa parte dell'oggetto, ma viene ignorata da toString, equals e simili.

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)
}

Quando usare le data class

Scelga una data class quando un oggetto serve principalmente a contenere valori:

  • DTO e modelli API
  • Coordinate, intervalli, risultati
  • Raggruppamenti di configurazione

Le eviti per le classi progettate attorno a comportamenti complessi o all'ereditarietà.

Tutto insieme

Una data class è una dichiarazione compatta di un modello:

  • Aggiungere il prefisso data ed elencare le proprietà
  • Ottenere gratuitamente toString, equals, hashCode, copy
  • Supportare valori predefiniti, argomenti denominati e metodi aggiuntivi
data class Book(val title: String, val pages: Int = 0)

fun main() {
    val b = Book(title = "Kotlin", pages = 300)
    println(b)
}

Verifica rapida

Verifichi la comprensione della dichiarazione delle data class.

Riepilogo

Ha imparato a dichiarare le data class:

  • La parola chiave data genera le funzioni standard
  • Le proprietà del costruttore determinano il comportamento generato
  • I valori predefiniti e gli argomenti denominati le rendono flessibili

Successivamente esaminerà in dettaglio le funzioni generate copy ed equals.

Domande Frequenti

La lezione «Dichiarazione delle data class» è gratuita?

Sì — il testo completo di «Dichiarazione delle data class» è 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 Kotlin Academy, passa a CoddyKit PRO. Il corso Kotlin Academy include 4 lezioni in totale.

Cosa imparerò in «Dichiarazione delle data class»?

Classi modello concise Eserciti Kotlin 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 Kotlin Academy?

Non è richiesta alcuna esperienza precedente. Kotlin 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 1 di 4.

Quanto tempo richiede la lezione «Dichiarazione delle data class»?

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 Kotlin Academy?

Sì. Ogni lezione Kotlin 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

  1. Dichiarazione delle data class
  2. copy ed equals
  3. Dichiarazioni destrutturate
  4. Data class nelle collezioni
← Torna a Kotlin Academy