0Pricing
Android Academy · Leçon

Classes de données

Des classes concises pour stocker des données.

Classes de données est une leçon Android Academy gratuite sur CoddyKit. Ceci est la leçon 4 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Android Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Android Academy comprend 4 leçons au total.

Qu'est-ce qu'une classe de données ?

Une classe de données est une classe conçue pour contenir des données. Kotlin lui génère automatiquement des méthodes utiles.

Vous en déclarez une en écrivant data avant class.

Déclarer une classe de données

Une classe de données doit avoir au moins un paramètre dans son constructeur principal, chacun étant marqué avec val ou var.

Voici un User qui stocke un nom et un âge.

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

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

Un toString lisible

Une classe ordinaire affiche une adresse difficile à comprendre. Une classe de données génère un toString clair qui affiche chaque propriété.

Cela facilite grandement le débogage.

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

fun main() {
    val u = User("Ada", 30)
    println(u)
}

Comparer avec equals

Les classes de données comparent le contenu, et non l'identité. Deux objets ayant les mêmes valeurs de propriétés sont égaux avec ==.

Une classe ordinaire les considérerait comme différents.

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 fonction copy

La fonction copy générée crée un nouvel objet à partir d'un objet existant. Vous pouvez modifier uniquement les propriétés que vous indiquez.

L'objet d'origine reste inchangé.

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

fun main() {
    val u = User("Ada", 30)
    val older = u.copy(age = 31)
    println(older)
}

Déstructuration

Les classes de données prennent en charge la déstructuration : décomposer les propriétés en variables distinctes sur une seule ligne.

L'ordre suit celui du constructeur.

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

fun main() {
    val (name, age) = User("Sam", 25)
    println(name + " " + age)
}

Les valeurs par défaut fonctionnent aussi

Comme pour tout constructeur, les paramètres d'une classe de données peuvent avoir des valeurs par défaut.

Les appelants peuvent ainsi omettre les champs dont ils n'ont pas besoin.

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

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

hashCode pour les collections

Les classes de données génèrent également hashCode, ce qui leur permet de fonctionner correctement comme clés dans un Set ou une Map.

Les objets égaux produisent le même hachage, ce qui permet de détecter les doublons.

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

fun main() {
    val set = setOf(Point(1, 1), Point(1, 1))
    println(set.size)
}

Quand utiliser les classes de données

Choisissez une classe de données lorsqu'un objet transporte principalement des valeurs plutôt qu'un comportement complexe.

  • Réponses d'API
  • État de l'interface utilisateur dans Android
  • Enregistrements de base de données

Pour les objets contenant une logique riche, une classe ordinaire convient mieux.

Les classes de données vous font gagner du temps

Un seul mot-clé data vous fournit toString, equals, hashCode, copy et la déstructuration.

Cela représente beaucoup de code répétitif que vous n'avez plus besoin d'écrire ni de maintenir manuellement.

Classe de données ou classe ordinaire

Une classe ordinaire compare l'identité et affiche une référence mémoire. Une classe de données compare le contenu et affiche ses valeurs.

Le mot-clé data active tous ces comportements générés.

class Plain(val x: Int)
data class Smart(val x: Int)

fun main() {
    println(Plain(1) == Plain(1))
    println(Smart(1) == Smart(1))
}

Vérification rapide

Vérifiez votre compréhension des classes de données.

Récapitulatif

Vous avez appris qu'une classe de données génère automatiquement toString, equals, hashCode, copy et la prise en charge de la déstructuration.

Elles sont idéales pour les objets qui transportent des valeurs, comme l'état de l'interface utilisateur et les modèles d'API. Vous avez maintenant étudié les fonctions, les classes, les constructeurs et les classes de données en Kotlin.

Questions Fréquemment Posées

La leçon « Classes de données » est-elle gratuite ?

Oui — le texte complet de « Classes de données » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Android Academy, passe à CoddyKit PRO. Le cours Android Academy comprend 4 leçons au total.

Qu'est-ce que j'apprendrai dans « Classes de données » ?

Des classes concises pour stocker des données. Tu pratiques Android Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.

Dois-je avoir de l'expérience pour commencer Android Academy ?

Aucune expérience préalable n'est requise. Android Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 4 sur 4.

Combien de temps prend la leçon « Classes de données » ?

La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.

Peux-tu écrire et exécuter du code dans cette leçon Android Academy ?

Oui. Chaque leçon Android Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.

Toutes les leçons de ce cours

  1. Déclarer des fonctions
  2. Classes et propriétés
  3. Constructeurs et init
  4. Classes de données
← Retour à Android Academy