Διαφήμιση

Αν έχετε κάνει κάτι αρχάριος προγραμματισμόςή ακόμη και άρχισες να βλέπεις διαφορετικές γλώσσες, πιθανότατα έχεις συναντήσει τη φράση "αντικειμενοστραφής προγραμματισμός" (ή "OOP").

Υπάρχουν όλες οι τεχνικές εξηγήσεις σχετικά με το τι είναι, αλλά σήμερα θα ρίξουμε μια ματιά στον καθορισμό αντικειμενοστραφής προγραμματισμού με έναν απλό τρόπο.

Πριν ξεκινήσουμε: Διαδικαστικές γλώσσες

Για να καταλάβετε τι είναι μια αντικειμενοστρεφής γλώσσα προγραμματισμού, πρέπει να καταλάβετε τι αντικατέστησε. Οι πρώτες γλώσσες προγραμματισμού ήταν διαδικαστικές - οι λεγόμενες επειδή ο προγραμματιστής θα καθόριζε ένα πολύ συγκεκριμένο σύνολο διαδικασιών που θα εκτελούσε ο υπολογιστής.

Τι είναι ο αντικειμενοστρεφής προγραμματισμός και πώς να ξεκινήσετε να το μαθαίνετε

Τις πρώτες μέρες, οι διαδικασίες γράφτηκαν σε κάρτες διάτρησης. Αυτά τα βήματα έλαβαν δεδομένα, πραγματοποίησαν μια ακολουθία ενεργειών σε αυτά τα δεδομένα και έπειτα εξήγαγαν νέα δεδομένα.

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

instagram viewer

Ο Αντικειμενοστρεφής Προγραμματισμός

Λοιπόν, τι είναι ο αντικειμενοστραφής προγραμματισμός;

Η πρώτη αντικειμενοστρεφής γλώσσα (γενικά συμφωνημένη ως Simula) εισήγαγε την ιδέα του αντικείμενα. Τα αντικείμενα είναι συλλογές πληροφοριών που αντιμετωπίζονται ως μοναδική οντότητα.

Θα βυθίσουμε βαθύτερα αυτό που σημαίνει πραγματικά σε ένα δευτερόλεπτο με ένα παράδειγμα, αλλά πρώτα πρέπει να μιλήσουμε τάξεις. Τα μαθήματα είναι σαν προ-αντικείμενα. Περιέχουν μια λίστα χαρακτηριστικών που, όταν ορίζονται, γίνονται αντικείμενο.

Τι είναι ο αντικειμενοστρεφής προγραμματισμός και πώς να ξεκινήσετε να το μαθαίνετε

Ας πάρουμε το παράδειγμα προγραμματισμού ενός παιχνιδιού σκακιού. Μπορεί να έχουμε μια τάξη που ονομάζεται Piece. Στο Piece, έχουμε μια λίστα χαρακτηριστικών:

  • Χρώμα
  • Υψος
  • Σχήμα
  • Επιτρέπεται η κίνηση

Ένα αντικείμενο ορίζει απλώς μια συγκεκριμένη παρουσία ενός αντικειμένου που ανήκει σε αυτήν την τάξη.

Έτσι θα μπορούσαμε να έχουμε ένα αντικείμενο που ονομάζεται WhiteQueen. Αυτό το αντικείμενο θα είχε ορισμούς και για τα τέσσερα χαρακτηριστικά (λευκό, ψηλό, κυλινδρικό με στρογγυλοποιήσεις, οποιονδήποτε αριθμό κενών προς οποιαδήποτε κατεύθυνση). Μπορεί επίσης να έχει μεθόδους ή συναρτήσεις.

Τι το κάνει αυτό πολύ καλύτερο από τη διαδικαστική προσέγγιση;

Εν ολίγοις, αντικειμενοστρεφείς γλώσσες προγραμματισμού (όπως η Java) διευκολύνει την οργάνωση δεδομένων και κώδικα με τρόπο πιο ευέλικτο για μεγαλύτερο έργο.

Για να το συζητήσουμε με περισσότερη λεπτομέρεια, θα μιλήσουμε για τα τέσσερα βασικά του αντικειμενοστραφούς προγραμματισμού.

Αντικειμενοστραφής προγραμματισμός: Αφαίρεση

Ακριβώς επειδή θέλετε να χρησιμοποιήσετε κάτι δεν σημαίνει ότι πρέπει να ξέρετε πώς λειτουργεί. Μια μηχανή εσπρέσο, για παράδειγμα, είναι περίπλοκη. Αλλά δεν χρειάζεται να γνωρίζετε πώς λειτουργεί. Απλά πρέπει να ξέρετε ότι όταν πατήσετε "On", θα πάρετε espresso.

Τι είναι ο αντικειμενοστρεφής προγραμματισμός και πώς να ξεκινήσετε να το μαθαίνετε

Το ίδιο ισχύει και για αντικείμενα σε αντικειμενοστρεφή προγραμματισμό. Στο παράδειγμα του σκακιού μας, μπορεί να έχουμε μια μέθοδο κίνησης (). Αυτή η μέθοδος θα μπορούσε να απαιτεί πολλά δεδομένα και άλλες μεθόδους. Μπορεί να χρειαστεί τις μεταβλητές αρχικής θέσης και τελικής θέσης. Θα μπορούσε να χρησιμοποιήσει μια άλλη μέθοδο για να προσδιορίσει εάν έχει συλλάβει ένα κομμάτι.

Αλλά δεν χρειάζεται να το ξέρετε αυτό. Το μόνο που χρειάζεται να γνωρίζετε είναι ότι όταν λέτε στο κομμάτι να κινηθεί, κινείται. Αυτή είναι η αφαίρεση.

Αντικειμενοστραφής προγραμματισμός: Ενθυλάκωση

Η ενθυλάκωση είναι ένας από τους τρόπους με τους οποίους ο αντικειμενοστρεφής προγραμματισμός δημιουργεί αφαίρεση. Κάθε αντικείμενο είναι μια συλλογή δεδομένων που αντιμετωπίζονται ως μία οντότητα. Και μέσα σε αυτά τα αντικείμενα υπάρχουν δεδομένα - τόσο μεταβλητές όσο και μέθοδοι.

Οι μεταβλητές εντός ενός αντικειμένου διατηρούνται γενικά ιδιωτικές, πράγμα που σημαίνει ότι άλλα αντικείμενα και μέθοδοι δεν μπορούν να έχουν πρόσβαση σε αυτές. Τα αντικείμενα μπορούν να επηρεαστούν μόνο με τη χρήση των μεθόδων τους.

Ένα αντικείμενο Bishop μπορεί να περιέχει πολλές πληροφορίες. Για παράδειγμα, θα μπορούσε να έχει μια μεταβλητή που ονομάζεται "θέση". Αυτή η μεταβλητή είναι απαραίτητη για τη χρήση της μεθόδου μετακίνησης (). Και, φυσικά, έχει χρώμα.

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

Αυτές οι μεταβλητές και οι μέθοδοι διατηρούνται εντός του αντικειμένου Bishop. Επειδή έχουν εγκλωβιστεί, ένας προγραμματιστής θα μπορούσε να κάνει μια αλλαγή στη δομή ή το περιεχόμενο του αντικειμένου χωρίς να ανησυχεί για τη δημόσια διεπαφή.

Αντικειμενοστραφής προγραμματισμός: Κληρονομικότητα

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

Στο παιχνίδι σκακιού μας, τα πιόνια χρειάζονται μια μέθοδο που μπορεί να τα μετατρέψει σε άλλα κομμάτια αν φτάσουν στο τέλος του πίνακα. Θα το ονομάσουμε μέθοδο transformPiece ().

Δεν χρειάζεται κάθε κομμάτι η μέθοδος transformPiece (). Επομένως, δεν θα θέλαμε να το βάλουμε στην κατηγορία Piece. Αντ 'αυτού, μπορούμε να δημιουργήσουμε μια υποκατηγορία που ονομάζεται Pawn. Επειδή είναι υποκατηγορία, κληρονομεί όλα τα χαρακτηριστικά από το Piece. Έτσι, ένα παράδειγμα της υποκατηγορίας Pawn περιλαμβάνει ένα χρώμα, ύψος, σχήμα και κίνηση που επιτρέπεται.

Αλλά περιλαμβάνει επίσης τη μέθοδο transformPiece (). Τώρα δεν χρειάζεται να ανησυχούμε για τη χρήση αυτής της λειτουργίας κατά λάθος σε έναν πύργο. Ακολουθεί μια τεχνική εξήγηση:

Η δημιουργία υποκατηγοριών εξοικονομεί επίσης πολύ χρόνο. Αντί να δημιουργούν νέες τάξεις για τα πάντα, οι προγραμματιστές μπορούν να δημιουργήσουν μια βασική τάξη και στη συνέχεια να την επεκτείνουν σε νέες υποκατηγορίες όταν χρειάζεται. (Ωστόσο, αξίζει να σημειωθεί αυτό Η υπερβολική εξάρτηση από την κληρονομιά είναι κακή 10 Βασικές αρχές προγραμματισμού που πρέπει να ακολουθεί κάθε προγραμματιστήςΝα γράφετε πάντα κώδικα που μπορεί να διατηρηθεί από οποιονδήποτε μπορεί να καταλήξει να εργάζεται στο λογισμικό σας. Για το σκοπό αυτό, ακολουθούν διάφορες αρχές προγραμματισμού που θα σας βοηθήσουν να καθαρίσετε την πράξη σας. Διαβάστε περισσότερα .)

Αντικειμενοστραφής προγραμματισμός: Πολυμορφισμός

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

Για παράδειγμα, η κλάση Piece μας μπορεί να έχει μια μέθοδο κίνησης () που μετακινεί ένα κομμάτι ένα κενό προς οποιαδήποτε κατεύθυνση. Αυτό λειτουργεί για το κομμάτι του βασιλιά, αλλά όχι για οτιδήποτε άλλο. Για να διορθώσουμε αυτό το πρόβλημα, μπορούμε να ορίσουμε τη νέα μέθοδο κίνησης () στην υποκατηγορία Rook που ορίζει την κίνηση ως απεριόριστο αριθμό κενών προς τα εμπρός, πίσω, αριστερά ή δεξιά.

Τώρα, όταν ένας προγραμματιστής επικαλείται τη μέθοδο μετακίνησης () και χρησιμοποιεί ένα κομμάτι ως επιχείρημα, το πρόγραμμα θα γνωρίζει ακριβώς πώς πρέπει να κινείται το κομμάτι. Αυτό εξοικονομεί πολύ χρόνο προσπαθώντας να καταλάβω ποιες από τις πολλές διαφορετικές μεθόδους πρέπει να χρησιμοποιήσετε.

Αντικειμενοστραφής προγραμματισμός με λίγα λόγια

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

  • Ο αντικειμενοστραφής προγραμματισμός συλλέγει πληροφορίες σε μεμονωμένες οντότητες που ονομάζονται αντικείμενα.
  • Κάθε αντικείμενο είναι μια μοναδική παρουσία μιας κλάσης.
  • Η αφαίρεση κρύβει την εσωτερική λειτουργία ενός αντικειμένου όταν δεν είναι απαραίτητο να τα δείτε.
  • Το Encapsulation αποθηκεύει σχετικές μεταβλητές και μεθόδους μέσα σε αντικείμενα και τις προστατεύει.
  • Η κληρονομικότητα επιτρέπει στις υποκατηγορίες να χρησιμοποιούν χαρακτηριστικά από μητρικές τάξεις.
  • Ο πολυμορφισμός επιτρέπει σε αντικείμενα και μεθόδους να αντιμετωπίζουν πολλές διαφορετικές καταστάσεις με μία μόνο διεπαφή.

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

Να θυμάστε ότι έχουμε συζητήσει μόνο τις γενικότητες σε αυτό το άρθρο. Διαφορετικές αντικειμενοστρεφείς γλώσσες θα έχουν τις δικές τους ιδιότητες και τρόπους για να κάνουν τα πράγματα να συμβούν. Μόλις εσύ επιλέξτε τη σωστή γλώσσα για εσάς Αναζητάτε τις καλύτερες γλώσσες προγραμματισμού; Ξεκινήστε εδώ!Είτε είστε εντελώς νέοι για τις γλώσσες προγραμματισμού είτε θέλετε να μεταβείτε σε ένα νέο είδος προγραμματισμού, ένα από τα πιο σημαντικά ερωτήματα που πρέπει να κάνετε είναι: "Ποια γλώσσα προγραμματισμού είναι κατάλληλη για μένα;" Διαβάστε περισσότερα , θα αρχίσετε να μαθαίνετε πώς εφαρμόζει τις αρχές OOP στην πράξη.

Ο Dann είναι σύμβουλος στρατηγικής περιεχομένου και μάρκετινγκ που βοηθά τις εταιρείες να δημιουργήσουν ζήτηση και δυνητικούς πελάτες. Επίσης, δημοσιεύει ιστολόγια σχετικά με τη στρατηγική και το μάρκετινγκ περιεχομένου στο dannalbright.com.