Βίντεο: Coding Challenge #4: Purple Rain in Processing 2024
A κατασκευαστής στην Java είναι ένα μπλοκ κώδικα παρόμοιο με μια μέθοδο που ονομάζεται όταν μια παρουσία ενός αντικείμενο δημιουργείται. Εδώ είναι οι βασικές διαφορές μεταξύ ενός κατασκευαστή και μιας μεθόδου:
-
Ένας κατασκευαστής δεν έχει τύπο επιστροφής.
-
Το όνομα του κατασκευαστή πρέπει να είναι το ίδιο με το όνομα της κλάσης.
-
Σε αντίθεση με τις μεθόδους, οι κατασκευαστές δεν θεωρούνται μέλη μιας τάξης.
-
Ένας κατασκευαστής ονομάζεται αυτόματα όταν δημιουργείται μια νέα παρουσία ενός αντικειμένου.
Αυτή είναι η βασική μορφή για την κωδικοποίηση ενός κατασκευαστή:
δημόσιο ClassName (λίστα παραμέτρων) [throws exception …] {statements …}
Η δημόσια λέξη-κλειδί δείχνει ότι άλλες κατηγορίες μπορούν να έχουν πρόσβαση στον κατασκευαστή. Το ClassName πρέπει να είναι το ίδιο με το όνομα της κλάσης που περιέχει τον κατασκευαστή. Κωδικοποιείτε τη λίστα παραμέτρων με τον ίδιο τρόπο που κωδικοποιείτε για μια μέθοδο.
Παρατηρήστε επίσης ότι ένας κατασκευαστής μπορεί να κάνει εξαιρέσεις αν αντιμετωπίζει καταστάσεις που δεν μπορεί να ανακάμψει.
Ένας κατασκευαστής σάς επιτρέπει να παρέχετε αρχικές τιμές για τα πεδία κλάσης όταν δημιουργείτε το αντικείμενο. Ας υποθέσουμε ότι έχετε μια κλάση με την ονομασία Actor που έχει πεδία με όνομα firstName και lastName. Μπορείτε να δημιουργήσετε έναν κατασκευαστή για την κατηγορία Actor:
δημόσιος ηθοποιός (String first, Last String) {firstName = first; lastName = last;}
Στη συνέχεια, δημιουργείτε μια εμφάνιση της κλάσης Actor καλώντας τον κατασκευαστή:
Ηθοποιός a = νέος ηθοποιός ("Arnold", "Schwarzenegger");
Δημιουργείται ένα νέο αντικείμενο δράστη για τον Arnold Schwarzenegger.
Όπως και οι μέθοδοι, οι κατασκευαστές μπορούν να υπερφορτωθούν. Με άλλα λόγια, μπορείτε να παρέχετε περισσότερους από έναν κατασκευαστές για μια κλάση αν κάθε κατασκευαστής έχει μια μοναδική υπογραφή. Εδώ είναι ένας άλλος κατασκευαστής για την κατηγορία Actor:
δημόσιος ηθοποιός (String first, String last, boolean καλό) {firstName = first; lastName = τελευταία; GoodActor = καλή?}
Αυτός ο κατασκευαστής σάς επιτρέπει να δημιουργήσετε ένα αντικείμενο Actor με πληροφορίες εκτός από το όνομα του ηθοποιού:
Actor a = νέος ηθοποιός ("Arnold", "Schwarzenegger");
Εάν δεν διαθέτετε κατασκευαστή για μια κλάση, η Java θα δημιουργήσει αυτόματα έναν προεπιλεγμένο κατασκευαστή που δεν έχει παραμέτρους και δεν προετοιμάζει κανένα πεδίο. Αυτός ο προεπιλεγμένος κατασκευαστής ονομάζεται αν καθορίσετε τη νέα λέξη-κλειδί χωρίς να περάσετε παραμέτρους. Για παράδειγμα:
Μπάλα b = νέα Μπάλα ();
Εδώ, δημιουργείται μια μεταβλητή τύπου Ball χρησιμοποιώντας τον προεπιλεγμένο κατασκευαστή για την κατηγορία Ball.
Αν δηλώνετε ρητά κατασκευαστές για μια κλάση, η Java δεν δημιουργεί έναν προεπιλεγμένο κατασκευαστή για την κλάση.Ως αποτέλεσμα, εάν δηλώσετε έναν κατασκευαστή που δέχεται παραμέτρους και εξακολουθεί να θέλετε να έχετε έναν κενό κατασκευαστή (χωρίς παραμέτρους και χωρίς σώμα), πρέπει να δηλώσετε ρητά έναν κενό κατασκευαστή για την κλάση.