Αντικειμενοστρεφής προγραμματισμός
Ο αντικειμενοστραφής προγραμματισμός (OOP) είναι ένας τρόπος γραφής προγραμμάτων υπολογιστών που χρησιμοποιεί την ιδέα των "αντικειμένων" για την αναπαράσταση δεδομένων και μεθόδων. Συνήθως, τα προγράμματα υπολογιστών ήταν απλώς ένας κατάλογος οδηγιών προς τον υπολογιστή, που έλεγαν στον υπολογιστή να κάνει ορισμένα πράγματα με συγκεκριμένο τρόπο, κάτι που ονομάζεται διαδικαστικός προγραμματισμός. Ωστόσο, στον αντικειμενοστραφή προγραμματισμό, τα προγράμματα υπολογιστών κάνουν χρήση αντικειμένων που μιλούν μεταξύ τους και αλλάζουν τα δεδομένα σε αυτά τα αντικείμενα, ώστε να λειτουργούν με τον τρόπο που επιθυμεί ο χρήστης. Επίσης, λόγω του τρόπου με τον οποίο είναι σχεδιασμένος ο αντικειμενοστραφής προγραμματισμός, βοηθά τον προγραμματιστή, επιτρέποντας την εύκολη επαναχρησιμοποίηση του κώδικα από άλλα μέρη του προγράμματος ή ακόμη και από άλλους ανθρώπους.
Οι περισσότερες γλώσσες προγραμματισμού είναι ένα μείγμα διαφορετικών τύπων τρόπων γραφής προγραμμάτων υπολογιστών. Για παράδειγμα, η Python επιτρέπει τη συγγραφή προγραμμάτων υπολογιστών τόσο με αντικειμενοστραφή προγραμματισμό όσο και με διαδικαστικό προγραμματισμό. Υπάρχουν πολλές γλώσσες προγραμματισμού που σας επιτρέπουν να γράφετε προγράμματα υπολογιστών σε OOP, Μερικές από αυτές τις γλώσσες προγραμματισμού είναι, για παράδειγμα: C++, Java, Ruby, Perl, Emarald, Sapphire, PHP, Python, κ.λπ.
Χαρακτηριστικά
Η βασική ιδέα του αντικειμενοστραφούς προγραμματισμού είναι ότι τα πάντα είναι αντικείμενα. Ωστόσο, το αντικείμενο μπορεί να είναι διαφόρων τύπων:
- Οι μεταβλητές μπορούν να περιέχουν πληροφορίες (ή δεδομένα) διαφόρων τύπων που υποστηρίζονται από τη γλώσσα προγραμματισμού. Παραδείγματα είναι ο ακέραιος τύπος δεδομένων και η δομή δεδομένων λίστες. Οι μεταβλητές είναι μια ιδέα που είναι ήδη διαθέσιμη από τις διαδικαστικές γλώσσες προγραμματισμού. Στον αντικειμενοστραφή προγραμματισμό, οι μεταβλητές είναι κυρίως γνωστές ως χαρακτηριστικά.
- Οι διαδικασίες (επίσης γνωστές ως συναρτήσεις, μέθοδοι ή ρουτίνες) είναι ένας κατάλογος οδηγιών που λένε στον υπολογιστή να λάβει δεδομένα, να κάνει κάποιους υπολογισμούς ή να αλλάξει δεδομένα και να επιστρέψει τα αποτελέσματα στον χρήστη. Οι διαδικασίες είναι επίσης μια ιδέα που είναι ήδη διαθέσιμη από τις διαδικαστικές γλώσσες προγραμματισμού. Στον αντικειμενοστραφή προγραμματισμό, οι διαδικασίες είναι κυρίως γνωστές ως μέθοδοι.
- Οι κλάσεις είναι μια συλλογή διαφορετικών μεταβλητών και διαδικασιών. Οι κλάσεις συνήθως συνομιλούν μεταξύ τους για να κάνουν αλλαγές στα δεδομένα ώστε να λειτουργούν με τον τρόπο που επιθυμεί ο χρήστης.
Τα αντικείμενα είναι ένας όρος που χρησιμοποιείται για την αναφορά σε περιπτώσεις κλάσεων.
Παραδείγματα
Στα παραδείγματα που ακολουθούν, δημιουργούμε μια κλάση που ονομάζεται Human
. Αυτή η κλάση περιέχει τα χαρακτηριστικά name
(για το όνομα του ατόμου) και friend
(για το όνομα του φίλου). Κάθε μία από τις μεθόδους της κλάσης Human
περιέχει μια λίστα εντολών που κάνει χρήση των χαρακτηριστικών name
και friend.
Python
Αυτός ο κώδικας είναι σε Python.
Java
Αυτός ο κώδικας είναι σε Java.
Η τάξη Human
Μια μέθοδος για να μιλήσετε με την παραπάνω κλάση Human
Κριτική
Παρόλο που ο αντικειμενοστραφής προγραμματισμός είναι δημοφιλής, υπάρχουν πολλοί άνθρωποι που πιστεύουν ότι είναι κακός και τον επικρίνουν.
- Ο Luca Cardelli έγραψε μια εργασία με τίτλο 'Bad Engineering Properties of Object-Oriented Languages'.
- Ο Richard Stallman έγραψε το 1995: "Η προσθήκη OOP στον Emacs δεν αποτελεί σαφώς βελτίωση- χρησιμοποίησα OOP όταν δούλευα στα παραθυρικά συστήματα της Lisp Machine και διαφωνώ με τη συνήθη άποψη ότι είναι ένας ανώτερος τρόπος προγραμματισμού".
- Μια μελέτη των Potok et al. μας λέει ότι υπάρχει πολύ μικρή διαφορά στην παραγωγικότητα μεταξύ των προσεγγίσεων OOP και διαδικαστικών προσεγγίσεων.
- Ο Christopher J. Date είπε ότι η σύγκριση της ΟΕΠ με άλλα πράγματα, ειδικά με το πώς η ΟΕΠ και το άλλο πράγμα σχετίζονται, είναι δύσκολη επειδή οι άνθρωποι δεν συμφωνούν στην έννοια της ΟΕΠ.
- Ο Αλεξάντερ Στεπάνοφ πρότεινε ότι το OOP δίνει μια οπτική γωνία που είναι περιορισμένη όσον αφορά τα μαθηματικά και το αποκάλεσε, "σχεδόν εξίσου φάρσα με την Τεχνητή Νοημοσύνη".
- Ο Paul Graham, ένας επιτυχημένος πωλητής και προγραμματιστής του διαδικτύου, έχει προτείνει ότι ο σκοπός της ΟΟΠ είναι να λειτουργεί ως μηχανισμός εκτροφής που εμποδίζει τους μέσους προγραμματιστές σε μέσους οργανισμούς να "κάνουν μεγάλη ζημιά". Αυτό επιβραδύνει επίσης τους ταχύτερους, καλύτερους προγραμματιστές που ξέρουν πώς να κάνουν τα πράγματα με πιο ισχυρό και πιο συμπαγή τρόπο. [1]
Ερωτήσεις και απαντήσεις
Ερ: Τι είναι ο αντικειμενοστραφής προγραμματισμός;
A: Ο αντικειμενοστραφής προγραμματισμός είναι ένας τρόπος γραφής προγραμμάτων υπολογιστών που χρησιμοποιεί "αντικείμενα" για να αντιπροσωπεύει δεδομένα και μεθόδους.
Ερ: Πώς διαφέρει ο αντικειμενοστραφής προγραμματισμός από τον διαδικαστικό προγραμματισμό;
A: Στον διαδικαστικό προγραμματισμό, τα προγράμματα υπολογιστών είναι ένας κατάλογος οδηγιών για τον υπολογιστή, που του λένε να κάνει ορισμένα πράγματα με συγκεκριμένο τρόπο. Στον αντικειμενοστραφή προγραμματισμό, τα προγράμματα υπολογιστών χρησιμοποιούν αντικείμενα που μιλούν μεταξύ τους για να αλλάζουν τα δεδομένα σε αυτά τα αντικείμενα και να λειτουργούν με τον τρόπο που επιθυμεί ο χρήστης.
Ερ: Πώς ωφελεί τους προγραμματιστές ο αντικειμενοστραφής προγραμματισμός;
Α: Ο αντικειμενοστραφής προγραμματισμός επιτρέπει την εύκολη επαναχρησιμοποίηση του κώδικα από άλλα μέρη του προγράμματος ή ακόμη και από άλλους ανθρώπους.
Ε: Για ποιο λόγο είναι γνωστή η γλώσσα προγραμματισμού Python;
Α: Η Python επιτρέπει τη συγγραφή προγραμμάτων υπολογιστών τόσο σε αντικειμενοστραφή προγραμματισμό όσο και σε διαδικαστικό προγραμματισμό.
Ερ: Μπορείτε να δώσετε παραδείγματα γλωσσών προγραμματισμού που επιτρέπουν τη συγγραφή προγραμμάτων υπολογιστών σε αντικειμενοστραφή προγραμματισμό;
Α: Οι γλώσσες προγραμματισμού που σας επιτρέπουν να γράφετε προγράμματα υπολογιστών σε αντικειμενοστραφή προγραμματισμό περιλαμβάνουν τις C++, Java, Ruby, Perl, Emarald, Sapphire, PHP, Python, C# κ.λπ.
Ε: Τι είναι τα αντικείμενα στον αντικειμενοστραφή προγραμματισμό;
Α: Τα αντικείμενα είναι οντότητες στον αντικειμενοστραφή προγραμματισμό που περιέχουν δεδομένα και μεθόδους.
Ε: Πώς λειτουργούν τα αντικείμενα στον αντικειμενοστραφή προγραμματισμό;
Α: Τα αντικείμενα αλληλεπιδρούν μεταξύ τους για να αλλάξουν τα δεδομένα σε αυτά τα αντικείμενα και να λειτουργήσουν με τον τρόπο που επιθυμεί ο χρήστης.