lezione 03

classi e data class

classi, data class, sealed class e extension.

livello: intermedio durata: 28 min output: modelli solidi badge: kotlin essentials

classi

class Camera(val model: String)
val cam = Camera("A7S")

data class

data class Shot(val id: Int, val name: String)
val shot = Shot(1, "A")

sealed class

sealed class Result
data class Ok(val value: String): Result()
object Fail: Result()

extension functions

fun String.slug(): String = lowercase().replace(" ", "-")
println("Hello World".slug())

esercizi

definisci una data class e mappa una lista.

data class Item(val id: Int, val name: String)
val items = listOf(Item(1, "A"), Item(2, "B"))
val names = items.map { it.name }
println(names)

panoramica

In questo capitolo su classi e data class lavoriamo su classi, data class, sealed class, extension functions per creare micro-pattern riutilizzabili.

lavora in sequenza: leggi, prova, modifica gli snippet e annota i trade-off principali.

badge: kotlin essentials

obiettivi

  • capire e applicare classi in uno scenario reale
  • capire e applicare data class in uno scenario reale
  • capire e applicare sealed class in uno scenario reale
  • capire e applicare extension functions in uno scenario reale

scheda rapida

class Camera(val model: String)
val cam = Camera("A7S")

adatta questo scheletro agli esempi della lezione.

tips

  • usa val quando possibile
  • sfrutta data class
  • gestisci null in modo esplicito
  • coroutines con scope chiari
  • moduli gradle coerenti
  • mantieni classi leggibile

tip: documenta ogni scelta architetturale.

mini progetto

crea un catalogo con data class e list.

  • definisci data class
  • crea list
  • stampa output

output atteso: catalogo stampato.

checklist

  • ho eseguito gli snippet e controllato l'output
  • ho annotato almeno 2 trade-off
  • ho completato il mini progetto
  • ho salvato un riepilogo personale
start a brief