Sobes.tech
Junior — Middle

Ποια χαρακτηριστικά και περιορισμοί υπάρχουν στις κλάσεις δεδομένων στο Kotlin;

sobes.tech AI

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

Οι κλάσεις δεδομένων (data class) σε Kotlin προορίζονται για την αποθήκευση δεδομένων και παρέχουν αυτόματα χρήσιμες μεθόδους: equals(), hashCode(), toString(), copy() και λειτουργίες αποσύνθεσης.

Χαρακτηριστικά και περιορισμοί:

  • Η κλάση πρέπει να έχει τουλάχιστον μια παράμετρο στον κατασκευαστή.
  • Όλες οι παράμετροι του κατασκευαστή, που δηλώνονται στο primary constructor, γίνονται αυτόματα ιδιότητες.
  • Η κλάση δεν μπορεί να είναι αφηρημένη, ανοιχτή, εσωτερική ή να κληρονομεί από άλλες κλάσεις (αλλά μπορεί να υλοποιεί διεπαφές).
  • Ο μεταγλωττιστής δημιουργεί μεθόδους μόνο για τις ιδιότητες που δηλώνονται στον κατασκευαστή, όχι για πρόσθετες ιδιότητες.
  • Μπορείτε να υπερασπιστείτε τις γεννημένες μεθόδους αν θέλετε να αλλάξετε τη συμπεριφορά.

Παράδειγμα:

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)