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)