Ο Αντικειμενοστραφής Προγραμματισμός (Object-Oriented Programming - OOP) είναι ένα μοντέλο προγραμματισμού που βασίζεται στην έννοια των αντικειμένων. Τα αντικείμενα είναι οντότητες που περιέχουν δεδομένα (ιδιότητες) και συμπεριφορά (μέθοδοι).
Ο Αντικειμενοστραφής Προγραμματισμός βοηθά στη δημιουργία κώδικα που είναι:
Οι βασικές αρχές του Αντικειμενοστραφούς Προγραμματισμού είναι:
Το αντικείμενο είναι μια οντότητα που περιέχει δεδομένα (ιδιότητες) και συμπεριφορά (μέθοδοι). Τα αντικείμενα είναι τα βασικά δομικά στοιχεία του Αντικειμενοστραφούς Προγραμματισμού.
Η κλάση είναι ένα πρότυπο (template) από το οποίο δημιουργούνται αντικείμενα. Ορίζει τις ιδιότητες και τις μεθόδους που θα έχουν τα αντικείμενα που δημιουργούνται από αυτήν.
Παράδειγμα: Η κλάση Αυτοκίνητο μπορεί να έχει τις ακόλουθες ιδιότητες και μεθόδους:
Οι ιδιότητες είναι τα δεδομένα που περιγράφουν την κατάσταση ενός αντικειμένου. Κάθε αντικείμενο έχει ένα σύνολο ιδιοτήτων που ορίζουν τις χαρακτηριστικές του τιμές.
Οι μέθοδοι είναι συναρτήσεις που ορίζουν τη συμπεριφορά ενός αντικειμένου. Κάθε αντικείμενο μπορεί να εκτελεί μεθόδους για να αλληλεπιδράσει με άλλα αντικείμενα ή να τροποποιήσει την κατάστασή του.
Παράδειγμα: Ένα αντικείμενο Λογαριασμός Τράπεζας μπορεί να έχει:
Η κληρονομικότητα είναι ένας μηχανισμός μέσω του οποίου μια κλάση (υποκλάση) μπορεί να κληρονομήσει ιδιότητες και μεθόδους από μια άλλη κλάση (υπερκλάση). Αυτό επιτρέπει την επαναχρησιμοποίηση κώδικα και τη δημιουργία ιεραρχιών κλάσεων.
Η αφαιρετικότητα είναι η διαδικασία της απόκρυψης των λεπτομερειών υλοποίησης και της εμφάνισης μόνο των απαραίτητων χαρακτηριστικών ενός αντικειμένου ή μιας κλάσης. Αυτό βοηθά στη μείωση της πολυπλοκότητας και στη βελτίωση της κατανόησης του συστήματος.
Η ενθυλάκωση είναι ο μηχανισμός μέσω του οποίου τα δεδομένα (ιδιότητες) και οι μέθοδοι που χειρίζονται αυτά τα δεδομένα συσκευάζονται μαζί σε μια κλάση. Αυτό προστατεύει τα δεδομένα από εξωτερικές παρεμβάσεις και διασφαλίζει ότι οι μεταβολές γίνονται μέσω ελεγχόμενων μεθόδων.
Παράδειγμα: Σε μια κλάση Λογαριασμός Τράπεζας, το υπόλοιπο είναι ιδιωτικό και προσπελαύνεται μέσω των μεθόδων κατάθεση() και ανάληψη().
Ο πολυμορφισμός είναι η ικανότητα ενός αντικειμένου να παίρνει πολλές μορφές. Αυτό επιτρέπει σε μια μέθοδο να συμπεριφέρεται διαφορετικά ανάλογα με το αντικείμενο στο οποίο καλείται.
Να περιγράψετε τα αντικείμενα και τις κλάσεις που θα χρησιμοποιούσατε για να μοντελοποιήσετε ένα σύστημα βιβλιοθήκης. Συγκεκριμένα, να ορίσετε:
Να σχεδιάσετε μια ιεραρχία κλάσεων για ένα σύστημα διαχείρισης ζώων σε ένα ζωολογικό κήπο. Να συμπεριλάβετε:
Να εξηγήσετε πώς η ενθυλάκωση μπορεί να βελτιώσει την ασφάλεια και τη συντηρησιμότητα ενός συστήματος διαχείρισης λογαριασμών τραπεζών. Συγκεκριμένα, να περιγράψετε:
Να περιγράψετε πώς η αφαιρετικότητα μπορεί να χρησιμοποιηθεί για να σχεδιάσετε ένα σύστημα διαχείρισης ενός σχολείου. Συγκεκριμένα, να ορίσετε:
Να περιγράψετε πώς ο πολυμορφισμός μπορεί να χρησιμοποιηθεί για να σχεδιάσετε ένα σύστημα διαχείρισης διαφορετικών τύπων οχημάτων (π.χ. αυτοκίνητα, μοτοσικλέτες, ποδήλατα). Συγκεκριμένα, να ορίσετε:
Να σχεδιάσετε ένα σύστημα διαχείρισης ενός καταστήματος ηλεκτρονικών προϊόντων χρησιμοποιώντας τις αρχές του Αντικειμενοστραφούς Προγραμματισμού. Να περιγράψετε: