Junior — Middle
Υπάρχει δυνατότητα δήλωσης ιδιοτήτων εκτός ορισμού κλάσης στη γλώσσα Kotlin;
sobes.tech AI
Απάντηση από AI
Στην Kotlin, οι ιδιότητες συνήθως δηλώνονται μέσα στον ορισμό της κλάσης. Ωστόσο, αν χρειάζεται να προσθέσετε μια ιδιότητα εκτός της κλάσης, μπορείτε να χρησιμοποιήσετε επεκτάσεις (extension properties).
Οι επεκτάσεις επιτρέπουν την προσθήκη νέων ιδιοτήτων ή συναρτήσεων σε υπάρχουσες κλάσεις χωρίς να αλλάξετε τον πηγαίο κώδικά τους.
Παράδειγμα ιδιότητας επέκτασης εκτός της κλάσης:
class User(val name: String)
// Ιδιότητα επέκτασης εκτός της κλάσης
val User.firstChar: Char
get() = this.name.first()
fun main() {
val user = User("Anna")
println(user.firstChar) // Θα εμφανίσει 'A'
}
Σημαντικό: οι ιδιότητες επέκτασης δεν μπορούν να έχουν κατάσταση (backing field), επομένως πρέπει να είναι υπολογιζόμενες (μόνο με getter ή με getter και setter, αλλά χωρίς πεδίο).
Έτσι, μπορούν να δηλωθούν ιδιότητες εκτός του ορισμού της κλάσης μέσω επεκτάσεων, αλλά με περιορισμούς.