Sobes.tech
Junior — Middle

Pouvez-vous expliquer les différences entre une classe normale et une data class dans le langage de programmation?

sobes.tech IA

Réponse de l'IA

Dans les langages de programmation comme Kotlin, une classe normale et une data class diffèrent en ce que la data class est conçue pour stocker des données et génère automatiquement des méthodes utiles.

Les principales différences entre une data class et une classe normale :

  • Génération automatique de méthodes : equals(), hashCode(), toString(), copy(), ainsi que des composants pour la destructuration.
  • Constructeur avec paramètres : la data class doit avoir au moins un paramètre dans le constructeur primaire.
  • Utilisation : la data class est pratique pour les modèles de données où la sémantique de l'égalité par contenu est importante.

Exemple en Kotlin :

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

val user1 = User("Alice", 30)
val user2 = User("Alice", 30)

println(user1 == user2) // true, comparaison par contenu
println(user1) // User(name=Alice, age=30)

val user3 = user1.copy(age = 31) // crée un nouvel objet avec l'âge modifié

Dans une classe normale, ces méthodes doivent être implémentées manuellement, ce qui augmente le code et la probabilité d'erreurs.