Differences
This shows you the differences between two versions of the page.
| Both sides previous revision
Previous revision
|
Next revision
Both sides next revision
|
java:objects [2022/02/23 15:10] gthanos [Επεξήγηση του παραπάνω κώδικα] |
java:objects [2022/02/23 15:12] gthanos [Πολλαπλοί κατασκευαστές σε μία κλάση] |
| </WRAP> | </WRAP> |
| |
| ===== Πολλαπλοί κατασκευαστές σε μία κλάση ===== | ===== Διαφορετικοί κατασκευαστές σε μία κλάση ===== |
| |
| Μία κλάση μπορεί να έχει πολλούς διαφορετικούς κατασκευαστές. Κάθε κατασκευαστής ορίζει μία διαφορετική αρχικοποίηση των εσωτερικών μεταβλητών των αντικειμένων που δημιουργούνται με βάση το "σχέδιο" της κλάσης. Το ποιoς κατασκευαστής θα κληθεί εξαρτάται από τον τύπο, τη σειρά και τον αριθμό των ορισμάτων σε αναλογία με την υπερφόρτωση μεθόδων. Ας υποθέσουμε την παρακάτω μέθοδο **main**, στην οποία καλούνται δύο διαφορετικοί κατασκευαστές για δύο διαφορετικά αντικείμενα της ίδιας κλάσης **Rectangle**. Παρατηρήστε ότι η μεταβλητή **rect1** αρχικοποιείται από την 1ο κατασκευαστή της κλάσης και η μεταβλητή **rect2** από τον 2ο κατασκευαστή. | Μία κλάση μπορεί να έχει περισσότερους από ένα κατασκευαστές. Κάθε κατασκευαστής ορίζει ένα διαφορετικό τρόπο αρχικοποίησης των εσωτερικών μεταβλητών των αντικειμένων που δημιουργούνται από την κλάση. Το ποιoς κατασκευαστής θα κληθεί εξαρτάται από τον τύπο, τη σειρά και τον αριθμό των ορισμάτων σε αναλογία με την υπερφόρτωση μεθόδων. Ας υποθέσουμε την παρακάτω μέθοδο **main**, στην οποία καλούνται δύο διαφορετικοί κατασκευαστές για δύο διαφορετικά αντικείμενα της ίδιας κλάσης **Rectangle**. Παρατηρήστε ότι η μεταβλητή **rect1** αρχικοποιείται από την πρώτο κατασκευαστή της κλάσης και η μεταβλητή **rect2** από τον δεύτερο κατασκευαστή. |
| |
| <code java> | <code java> |