Διαφορά μεταξύ κατασκευαστή και καταστροφέα

Πίνακας περιεχομένων:

Διαφορά μεταξύ κατασκευαστή και καταστροφέα
Διαφορά μεταξύ κατασκευαστή και καταστροφέα

Βίντεο: Διαφορά μεταξύ κατασκευαστή και καταστροφέα

Βίντεο: Διαφορά μεταξύ κατασκευαστή και καταστροφέα
Βίντεο: Δίκτυα Υπολογιστών (Μέρος 25ο) - Πρωτόκολλα πραγματικού χρόνου: Διαφορές μεταξύ Η.323 και SIP 2024, Δεκέμβριος
Anonim

Βασική διαφορά – Κατασκευαστής εναντίον Καταστροφέα

Οι περισσότερες γλώσσες προγραμματισμού υποστηρίζουν αντικειμενοστραφή προγραμματισμό (OOP). Είναι το παράδειγμα που βοηθά στη μοντελοποίηση ενός λογισμικού ή ενός προγράμματος χρησιμοποιώντας αντικείμενα. Το OOP βελτιώνει την παραγωγικότητα και τη συντηρησιμότητα. Στο OOP όλα θεωρούνται ως αντικείμενο. Τα αντικείμενα δημιουργούνται ή δημιουργούνται με χρήση κλάσεων. Κατασκευαστής και Καταστροφέας είναι κοινοί όροι στον Αντικειμενοστραφή Προγραμματισμό. Αυτό το άρθρο εξετάζει τη διαφορά μεταξύ ενός κατασκευαστή και ενός καταστροφέα. Ένας κατασκευαστής και ένας καταστροφέας είναι συνάρτηση ειδικού μέλους σε μια κλάση. Ένας κατασκευαστής και ένας καταστροφέας έχουν το ίδιο όνομα με την κλάση, αλλά ο καταστροφέας έχει ένα σύμβολο tilde (~). Η βασική διαφορά μεταξύ ενός κατασκευαστή και του καταστροφέα είναι ότι ένας κατασκευαστής χρησιμοποιείται για να εκχωρήσει μνήμη σε ένα αντικείμενο ενώ ένας καταστροφέας χρησιμοποιείται στη μνήμη κατανομής ενός αντικειμένου.

Τι είναι ένας κατασκευαστής;

Ένας κατασκευαστής είναι μια ειδική συνάρτηση μέλους στην κλάση για την εκχώρηση μνήμης σε ένα αντικείμενο. Μπορεί να χρησιμοποιηθεί για την παροχή τιμών για τα μέλη δεδομένων. Ο κατασκευαστής καλείται όταν δημιουργείται το αντικείμενο. Έχει το ίδιο όνομα με το όνομα της τάξης. Ένας κατασκευαστής δεν επιστρέφει καμία τιμή. Επομένως, δεν περιέχει τύπο επιστροφής. Ένας κατασκευαστής μπορεί επίσης να δεχθεί παραμέτρους. Ένας κατασκευαστής με παραμέτρους είναι γνωστός ως παραμετροποιημένος κατασκευαστής.

Ένα παράδειγμα κατασκευαστή είναι το ακόλουθο.

Ορθογώνιο δημόσιας τάξης{

int μήκος, πλάτος;

δημόσιο ορθογώνιο(int p, int q){

length=p;

πλάτος=q;

}

public int υπολογισμός Περιοχής(){

return (μήκοςπλάτος);

}

}

Σύμφωνα με το παραπάνω κομμάτι κώδικα, ο κατασκευαστής έχει το ίδιο όνομα με το όνομα της κλάσης. Ο κατασκευαστής Rectangle δέχεται δύο παραμέτρους. Είναι το p και το q. Η ακέραια τιμή p εκχωρείται στο μήκος. Η ακέραια τιμή q εκχωρείται στο πλάτος. Στο calcu alteArea, ο πολλαπλασιασμός του μήκους και του πλάτους υπολογίζεται για να βρεθεί το εμβαδόν του ορθογωνίου. Στο κύριο πρόγραμμα, ο προγραμματιστής μπορεί να δημιουργήσει ένα αντικείμενο τύπου Rectangle και να περάσει τα ορίσματα. π.χ. Rectangle rect1=new Rectangle(2, 3). Στη συνέχεια, καλείται ο παραμετροποιημένος κατασκευαστής και εκχωρεί τις τιμές στο μήκος και το πλάτος.

Διαφορά μεταξύ κατασκευαστή και καταστροφέα
Διαφορά μεταξύ κατασκευαστή και καταστροφέα

Εικόνα 01: Κατασκευαστής και Καταστροφέας

Όταν υπάρχει ένας κατασκευαστής χωρίς παραμέτρους, ονομάζεται προεπιλεγμένος κατασκευαστής. Εάν ο προγραμματιστής δεν ορίσει έναν κατασκευαστή, θα κληθεί ο προεπιλεγμένος κατασκευαστής. Εάν υπάρχει μια κλάση ως Student και όταν ο προγραμματιστής δημιουργεί ένα αντικείμενο τύπου Student, καλείται ο προεπιλεγμένος κατασκευαστής. π.χ. Μαθητής s1=new Student(); Μπορεί να υπάρχουν πολλοί κατασκευαστές με διαφορετικές παραμέτρους και διαφορετικούς τύπους δεδομένων σε μια κλάση. Ο κατάλληλος κατασκευαστής μπορεί να κληθεί ανάλογα. Επομένως, οι κατασκευαστές μπορούν να υπερφορτωθούν.

Τι είναι ο Καταστροφέας;

Ο καταστροφέας είναι μια ειδική συνάρτηση μέλους στην τάξη. Χρησιμοποιείται για την αποκατανομή μνήμης για ένα αντικείμενο που δημιουργήθηκε από τον κατασκευαστή. Ο καταστροφέας επικαλείται όταν το αντικείμενο καταστρέφεται. Πραγματοποιεί την αποθήκευση καθαρισμού που δεν απαιτείται πλέον. Όπως ο κατασκευαστής, ο καταστροφέας έχει το ίδιο όνομα με την κλάση. Περιέχει επίσης ένα σύμβολο tilde (~).

Ένας καταστροφέας δεν επιστρέφει καμία τιμή. Σε αντίθεση με έναν κατασκευαστή, ο καταστροφέας δεν δέχεται καμία παράμετρο. Έτσι, ο καταστροφέας δεν υποστηρίζει υπερφόρτωση. Η δήλωση ενός καταστροφέα θεωρείται ως μια καλή πρακτική προγραμματισμού επειδή απελευθερώνει το χώρο της μνήμης και αυτός ο χώρος μπορεί να χρησιμοποιηθεί για την αποθήκευση κάποιων άλλων αντικειμένων. Η σύνταξη του καταστροφέα είναι παρόμοια με την ~className() { }. π.χ. ~Ορθογώνιο() { }; Μπορεί να υπάρχει μόνο ένας καταστροφέας σε μια τάξη.

Ποιες είναι οι ομοιότητες μεταξύ του κατασκευαστή και του καταστροφέα;

  • Τόσο ο κατασκευαστής όσο και ο καταστροφέας σχετίζονται με αντικείμενα.
  • Τόσο ο κατασκευαστής όσο και ο καταστροφέας δεν επιστρέφουν καμία τιμή.
  • Τόσο ο κατασκευαστής όσο και ο καταστροφέας καλούνται αυτόματα.

Ποια είναι η διαφορά μεταξύ του κατασκευαστή και του καταστροφέα;

Κατασκευαστής εναντίον Καταστροφέα

Ένας κατασκευαστής είναι ένα ειδικό μέλος στην κλάση που χρησιμοποιείται για την εκχώρηση μνήμης σε ένα αντικείμενο. Ένας καταστροφέας είναι ένα ειδικό μέλος της κλάσης που χρησιμοποιείται για την κατανομή μνήμης ενός αντικειμένου.
Μέθοδος επίκλησης
Ένας κατασκευαστής καλείται όταν δημιουργείται το αντικείμενο. Ένας καταστροφέας καλείται όταν το αντικείμενο καταστρέφεται ή διαγράφεται.
Usage
Χρησιμοποιείται ένας κατασκευαστής για την εκχώρηση μνήμης για τα αντικείμενα. Χρησιμοποιείται ένας καταστροφέας για την κατανομή μνήμης για τα αντικείμενα.
Παράμετροι
Ένας κατασκευαστής δέχεται παραμέτρους. Ένας καταστροφέας δεν δέχεται παραμέτρους.
Αριθμός κατασκευαστών και καταστροφέων
Μπορεί να υπάρχουν πολλοί κατασκευαστές με διαφορετικό αριθμό παραμέτρων και διαφορετικούς τύπους παραμέτρων. Μπορεί να υπάρχει μεμονωμένος καταστροφέας στην τάξη.
Ταχύτητα εκτέλεσης
Ένας κατασκευαστής έχει το ίδιο όνομα με το όνομα της κλάσης. Ένας καταστροφέας έχει το ίδιο όνομα με το όνομα της τάξης με σύμβολο tilde (~).
Υπερφόρτωση
Ένας κατασκευαστής μπορεί να υπερφορτωθεί. Δεν μπορεί να υπερφορτωθεί ένας καταστροφέας.

Σύνοψη – Κατασκευαστής εναντίον Καταστροφέα

Το OOP είναι ένα κοινό παράδειγμα στην ανάπτυξη λογισμικού. Μπορεί να απλοποιήσει ένα πολύπλοκο έργο. Ένας κατασκευαστής και ένας καταστροφέας χρησιμοποιούνται στο OOP. Ένας κατασκευαστής και ένας καταστροφέας έχουν το ίδιο όνομα με την κλάση, αλλά ο καταστροφέας έχει ένα σύμβολο ~. Η διαφορά μεταξύ ενός κατασκευαστή και του καταστροφέα είναι ότι ένας κατασκευαστής χρησιμοποιείται για να εκχωρήσει μνήμη σε ένα αντικείμενο ενώ ένας καταστροφέας χρησιμοποιείται στη μνήμη κατανομής ενός αντικειμένου.

Κατεβάστε το PDF του Constructor vs Destructor

Μπορείτε να κατεβάσετε την έκδοση PDF αυτού του άρθρου και να τη χρησιμοποιήσετε για σκοπούς εκτός σύνδεσης σύμφωνα με τη σημείωση παραπομπής. Κατεβάστε την έκδοση PDF εδώ: Διαφορά μεταξύ κατασκευαστή και καταστροφέα

Συνιστάται: