Junior
Πώς μπορείτε να υλοποιήσετε πολλαπλούς κατασκευαστές σε μια κλάση σε Kotlin;
sobes.tech AI
Απάντηση από AI
Για τη δημιουργία πολλαπλών κατασκευαστών σε Kotlin, χρησιμοποιείται ο πρωτεύων κατασκευαστής και, αν χρειάζεται, ένας ή περισσότεροι δευτερεύοντες κατασκευαστές.
Ο πρωτεύων κατασκευαστής δηλώνεται άμεσα στην επικεφαλίδα της κλάσης:
class MyClass(primaryParam1: String, primaryParam2: Int) {
// Σώμα της κλάσης
}
Οι δευτερεύοντες κατασκευαστές δηλώνονται με τη λέξη-κλειδί constructor:
class MyClass {
// Πρωτεύων κατασκευαστής (υπαινιγμένος ή ρητός)
constructor(param1: String) {
// Λογική του δευτερεύοντος κατασκευαστή 1
}
constructor(param1: String, param2: Int) {
// Λογική του δευτερεύοντος κατασκευαστή 2
}
}
Εάν η κλάση έχει πρωτεύοντα κατασκευαστή, κάθε δευτερεύων κατασκευαστής πρέπει να αναθέτει την κλήση στον πρωτεύοντα κατασκευαστή, χρησιμοποιώντας τη λέξη-κλειδί this():
class MyClass(primaryParam: String) {
constructor(secondaryParam: Int) : this(secondaryParam.toString()) {
// Λογική του δευτερεύοντος κατασκευαστή
}
}
Επίσης, μπορούν να υπάρχουν πολλοί δευτερεύοντες κατασκευαστές που αναθέτουν στον πρωτεύοντα ή σε άλλους δευτερεύοντες κατασκευαστές (ακολουθώντας την ιεραρχία ανάθεσης):
class MyClass(primaryParam: String) {
constructor(param1: String, param2: Int) : this(param1) {
// Λογική του δευτερεύοντος κατασκευαστή 1
}
constructor(param1: String, param2: Int, param3: Boolean) : this(param1, param2) {
// Λογική του δευτερεύοντος κατασκευαστή 2
}
}
Σημαντικά σημεία:
- Το σώμα του πρωτεύοντος κατασκευαστή εκτελείται πριν από το σώμα των δευτερευόντων κατασκευαστών.
- Οι ιδιότητες που δηλώνονται στην επικεφαλίδα του πρωτεύοντος κατασκευαστή μπορούν να είναι προσβάσιμες στο σώμα των δευτερευόντων κατασκευαστών.
- Στο Kotlin, συνιστάται η χρήση του πρωτεύοντος κατασκευαστή και, εφόσον είναι δυνατόν, η αποφυγή των δευτερευόντων κατασκευαστών, προτιμώντας ονομασμένα επιχειρήματα ή μεθόδους εργοστασίου.