Junior
Ποιες μεταβλητές μπορούν να χρησιμοποιηθούν σε μια κλάση δεδομένων (data class);
sobes.tech AI
Απάντηση από AI
Σε μια data class μπορούν να χρησιμοποιηθούν:
val(μόνο για ανάγνωση ιδιότητα): Η ιδιότητα αρχικοποιείται κατά τη δημιουργία του αντικειμένου και δεν μπορεί να τροποποιηθεί στη συνέχεια. Είναι μέρος των αυτόματα παραγόμενων μεθόδων (equals(),hashCode(),toString(),copy).var(μεταβλητή ιδιότητα): Η ιδιότητα μπορεί να τροποποιηθεί μετά τη δημιουργία του αντικειμένου. Είναι επίσης μέρος των παραγόμενων μεθόδων.- Ιδιότητες που δηλώνονται στο σώμα της κλάσης: Αυτές οι ιδιότητες δεν αποτελούν μέρος των κύριων ιδιοτήτων της data class και δεν συμμετέχουν στη δημιουργία των τυπικών μεθόδων.
Παράδειγμα:
data class User(
val id: Int, // μόνο για ανάγνωση, μέρος των κύριων ιδιοτήτων
var name: String, // μεταβλητή, μέρος των κύριων ιδιοτήτων
val creationTime: Long = System.currentTimeMillis() // μόνο για ανάγνωση, με προεπιλεγμένη τιμή, μέρος των κύριων ιδιοτήτων
) {
val isAdmin: Boolean = false // μόνο για ανάγνωση, δεν αποτελεί μέρος των κύριων ιδιοτήτων, δεν περιλαμβάνεται σε equals/hashCode/toString
}