Sobes.tech
Junior — Middle

Ποια είναι η διαφορά μεταξύ μιας data class και μιας τυπικής κλάσης στη γλώσσα προγραμματισμού;

sobes.tech AI

Απάντηση από AI

Στη γλώσσα Kotlin (Android), μια data class (κλάση δεδομένων) είναι μια ειδική κλάση σχεδιασμένη για την αποθήκευση δεδομένων. Η κύρια διαφορά από μια κανονική κλάση είναι ότι ο μεταγλωττιστής δημιουργεί αυτόματα αρκετές χρήσιμες μεθόδους για την data class:

  • equals() και hashCode() για σύγκριση αντικειμένων βάσει περιεχομένου,
  • toString() με ενημερωτική έξοδο,
  • copy() για δημιουργία αντιγράφων με τροποποιημένα πεδία,
  • συστατικά (component1(), component2(), κ.λπ.) για αποσύνθεση.

Μια κανονική κλάση δεν διαθέτει αυτές τις μεθόδους από προεπιλογή, πρέπει να γραφούν χειροκίνητα αν χρειάζεται.

Παράδειγμα data class:

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

val user1 = User("Alice", 30)
val user2 = user1.copy(age = 31)
println(user1) // User(name=Alice, age=30)

Έτσι, η data class είναι βολική για μοντέλα δεδομένων όπου η απλότητα και η σωστή σύγκριση αντικειμένων είναι σημαντικές.