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 είναι βολική για μοντέλα δεδομένων όπου η απλότητα και η σωστή σύγκριση αντικειμένων είναι σημαντικές.