Αντικειμενοστραφής Προγραμματισμός ΑΕΠΠ Γ’ Λυκείου

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

Στη σελίδα αυτή θα μελετήσεις πρακτικά τους βασικούς όρους του αντικειμενοστραφούς προγραμματισμού: αντικείμενο, ιδιότητα, μέθοδο, κλάση, κληρονομικότητα, πρόγονο, απόγονο, πολυμορφισμό και τη σχέση A is a B.
Στόχος μας είναι να αναγνωρίσουμε και να καταγράψουμε τα βασικά συστατικά στοιχεία της διαδικασίας επίλυσής του που είναι:
1. τα αντικείμενα που συμμετέχουν με βάση τον ρόλο τους στο συγκεκριμένο σενάριο,
2. οι ιδιότητες κάθε αντικειμένου,
3. οι ενέργειες - μέθοδοι που υλοποιεί κάθε αντικείμενο προς αξιοποίηση από άλλες, ώστε να αναπτυχθούν οι απαραίτητες συνεργασίες μεταξύ των αντικειμένων για την επίλυση του προβλήματος

Αντικείμενο, Ιδιότητα και Μέθοδος

Ένα αντικείμενο είναι μια συγκεκριμένη οντότητα του προγράμματος με δική της ταυτότητα, ιδιότητες και συμπεριφορά. Για παράδειγμα, o Καθηγητής Ηρακλής Πεπονάκης είναι ένα αντικείμενο της κλάσης «Καθηγητής».

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

Όρος Σημασία
Αντικείμενο Μια συγκεκριμένη οντότητα με ταυτότητα, ιδιότητες και μεθόδους.
Ιδιότητα Χαρακτηριστικό που περιγράφει την κατάσταση ενός αντικειμένου.
Μέθοδος() Ενέργεια ή συμπεριφορά που μπορεί να εκτελέσει ένα αντικείμενο.

Κλάση και Αντικείμενα

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

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

Κλάση Καθηγητής
Ιδιότητες:
Όνομα
Επώνυμο
Ειδικότητα

Μέθοδοι:
Διδάσκει()
Διορθώνει()
Αντικείμενο: Καθηγητής 1
Αντικείμενο: Καθηγητής 2
Αντικείμενο: Καθηγητής 3

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

Κληρονομικότητα, Πρόγονος και Απόγονος

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

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

Η σχέση που εκφράζει την κληρονομικότητα είναι η «A is a B»

Η φράση A is a B σημαίνει ότι κάθε αντικείμενο της κλάσης Α είναι ταυτόχρονα και αντικείμενο της γενικότερης κλάσης Β. Για παράδειγμα:

Μαθηματικός is A Καθηγητής
Ποδοσφαιριστής is A Αθλητής

Ο Μαθηματικός είναι ειδικότερη μορφή Καθηγητή. Άρα η κλάση «Καθηγητής» είναι πρόγονος (Υπερκλάση) και η κλάση «Μαθηματικός» είναι απόγονος (Υποκλάση). Παρακάτω μπορείτε να το δείτε και σχηματικά , σε μορφή αποδεκτή από τις πανελλαδικές εξετάσεις.

Καθηγητής
(Κλάση-πρόγονος)
Μαθηματικός
(Κλάση-απόγονος)
Φυσικός
(Κλάση-απόγονος)
Πληροφορικάριος
(Κλάση-απόγονος)
Τα βέλη δείχνουν από τις κλάσεις-απογόνους προς την κλάση-πρόγονο.
Προσοχή !! δεν χρειάζεται να γράφετε κλάση προγονος και απόγονος, εμείς το δώσαμε έτσι απλά και μόνο για να καταλάβετε ποιό είναι ποιό.

Πολυμορφισμός

Πολυμορφισμός είναι η δυνατότητα μιας κοινής μεθόδου να έχει διαφορετική υλοποίηση στις κλάσεις-απογόνους. Για παράδειγμα, όλοι οι καθηγητές μπορεί να έχουν τη μέθοδο Διδάσκει(), αλλά ο Μαθηματικός, ο Φυσικός και ο Πληροφορικάριος να τη χρησιμοποιούν με διαφορετικό τρόπο.

Το ίδιο όνομα μεθόδου έχει κοινό σκοπό, αλλά η συμπεριφορά της εξαρτάται από την κλάση του αντικειμένου που την εκτελεί. Η μέθοδος Ενημερώνει_Γονείς(), αντίθετα, μπορεί να υλοποιείται με τον ίδιο τρόπο σε όλες τις κλάσεις-απογόνους.

Σχηματική Αναπαράσταση Πολυμορφισμού

Η μέθοδος Διδάσκει() κληρονομείται από την κλάση «Καθηγητής» και επαναπροσδιορίζεται στις κλάσεις «Μαθηματικός», «Φυσικός» και «Πληροφορικάριος». Το ίδιο όνομα μεθόδου έχει διαφορετική υλοποίηση ανάλογα με την κλάση-απόγονο.

Καθηγητής
Διδάσκει()
Μαθηματικός

Διδάσκει()
Φυσικός

Διδάσκει()
Πληροφορικάριος

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

Λυμένη Άσκηση Αντικειμενοστραφής Προγραμματισμός

Εκφώνηση: Δίνονται τα ακόλουθα αντικείμενα, καθένα από τα οποία έχει κάποιες ιδιότητες και μεθόδους της κλάσης «Καθηγητής». Με βάση τις πληροφορίες να σχεδιάσετε την κλάση «Καθηγητής».

Αντικείμενο Ιδιότητες Μέθοδοι
Καθηγητής 1 Όνομα, Επώνυμο, Ειδικότητα Διδάσκει(), Διορθώνει(), Προετοιμάζει_Παρουσιάσεις()
Καθηγητής 2 Όνομα, Επώνυμο, Ειδικότητα, Προϋπηρεσία Διορθώνει(), Ετοιμάζει_Διαγωνίσματα(), Προετοιμάζει_Παρουσιάσεις()
Καθηγητής 3 Όνομα, Επώνυμο, Ειδικότητα, Προϋπηρεσία Διδάσκει(), Διορθώνει(), Ετοιμάζει_Διαγωνίσματα()

Λύση: Κλάση «Καθηγητής»

Η κλάση πρέπει να περιλαμβάνει όλες τις ιδιότητες και τις μεθόδους που εμφανίζονται στα αντικείμενα της. Επομένως, η ιδιότητα Προϋπηρεσία και οι μέθοδοι Ετοιμάζει_Διαγωνίσματα() και Διδάσκει() ανήκουν στην κλάση, ακόμη και αν δεν εμφανίζονται σε κάθε αντικείμενο.

Κλάση Καθηγητής
Ιδιότητες
Όνομα
Επώνυμο
Ειδικότητα
Προϋπηρεσία
Μέθοδοι
Διδάσκει()
Διορθώνει()
Προετοιμάζει_Παρουσιάσεις()
Ετοιμάζει_Διαγωνίσματα()

Λυμένη Άσκηση Κληρονομικότητας / Πολυμορφισμός ΑΕΠΠ

Εκφώνηση: Δίνονται οι κλάσεις Μαθηματικός, Φυσικός και Πληροφορικάριος. Να δημιουργηθεί η κλάση-πρόγονος «Καθηγητής» και να σχεδιαστούν οι σχέσεις κληρονομικότητας μεταξύ της κλάσης-προγόνου και των κλάσεων-απογόνων.

Οι τρεις κλάσεις έχουν κοινές ιδιότητες: όνομα, επώνυμο και αριθμό ταυτότητας. Έχουν επίσης κοινές μεθόδους: Διδάσκει(), Διορθώνει() και Ενημερώνει_Γονείς().

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

Καθηγητής
-------------------------------------
όνομα, επώνυμο, ατ
 -------------------------------------
διδάσκει(), διορθώνει(), ενημερώνει()
Μαθηματικός
-------------------------------------
έτη διδασκαλίας
 -------------------------------------
διδάσκει(), διορθώνει()
Φυσικός
-------------------------------------
εργαστηριακή εμπειρία
 -------------------------------------
διδάσκει(), διορθώνει()
Πληροφορικάριος
-------------------------------------
προγραμματιστική εμπειρία
 -------------------------------------
διδάσκει(), διορθώνει()
Η μέθοδος διδάσκει(), διορθώνει() είναι πολυμορφικές για το λόγο αυτό και υπάρχουν στον πρόγονο και στους απογόνους.

Διαφορές Κληρονομικότητας και Πολυμορφισμού

Κλάση-πρόγονος Κλάση-απόγονος Πολυμορφισμός
Όνομα, Επώνυμο, Αριθμός ταυτότητας Εξειδικευμένη ιδιότητα κάθε ειδικότητας Διδάσκει() και Διορθώνει() με διαφορετική υλοποίηση
Διδάσκει(), Διορθώνει(), Ενημερώνει_Γονείς() Εξειδικευμένες μέθοδοι κάθε κλάσης Ίδιο όνομα μεθόδου, διαφορετική συμπεριφορά

Ερωτήσεις Σωστό / Λάθος

Χαρακτήρισε κάθε πρόταση με Σωστό (Σ) ή Λάθος (Λ).

  1. Η κλάση αποτελεί πρότυπο για τη δημιουργία αντικειμένων.
  2. Οι ιδιότητες περιγράφουν τις ενέργειες που εκτελεί ένα αντικείμενο.
  3. Οι μέθοδοι περιγράφουν τη συμπεριφορά ενός αντικειμένου.
  4. Δύο αντικείμενα της ίδιας κλάσης πρέπει να έχουν πάντα ίδιες τιμές στις ιδιότητές τους.
  5. Κληρονομικότητα είναι η απόκτηση ιδιοτήτων και μεθόδων μιας κλάσης από μια άλλη.
  6. Στη σχέση «Μαθηματικός is a Καθηγητής», ο Καθηγητής είναι κλάση-απόγονος.
  7. Ο πολυμορφισμός επιτρέπει σε μεθόδους με ίδιο όνομα να έχουν διαφορετική υλοποίηση.
  8. Η μέθοδος Ενημερώνει_Γονείς() μπορεί να είναι κοινή στις κλάσεις-απογόνους.
  9. Η μέθοδος Διδάσκει() πρέπει υποχρεωτικά να έχει ίδια συμπεριφορά σε όλες τις ειδικότητες.
  10. Η κλάση Καθηγητής μπορεί να είναι πρόγονος των κλάσεων Μαθηματικός, Φυσικός και Πληροφορικάριος.

Απαντήσεις Σωστό / Λάθος

  1. Σ – Η κλάση αποτελεί πρότυπο δημιουργίας αντικειμένων.
  2. Λ – Οι ιδιότητες περιγράφουν χαρακτηριστικά, όχι ενέργειες.
  3. Σ – Οι μέθοδοι περιγράφουν τη συμπεριφορά του αντικειμένου.
  4. Λ – Μπορούν να έχουν διαφορετικές τιμές στις ιδιότητές τους.
  5. Σ – Αυτή είναι η έννοια της κληρονομικότητας.
  6. Λ – Ο Καθηγητής είναι ο πρόγονος και ο Μαθηματικός ο απόγονος.
  7. Σ – Αυτό αποτελεί βασικό χαρακτηριστικό του πολυμορφισμού.
  8. Σ – Η κοινή μέθοδος μπορεί να κληρονομείται χωρίς αλλαγή.
  9. Λ – Ο πολυμορφισμός επιτρέπει διαφορετική συμπεριφορά.
  10. Σ – Η σχέση είναι «Μαθηματικός is a Καθηγητής» και αντίστοιχα για τις άλλες ειδικότητες.

Ερωτήσεις Πολλαπλής Επιλογής

Επίλεξε τη σωστή απάντηση.

  1. Ποιο από τα παρακάτω είναι ιδιότητα ενός αντικειμένου;
    • α) Διδάσκει()
    • β) Διορθώνει()
    • γ) Επώνυμο
    • δ) Ενημερώνει_Γονείς()
  2. Ποιο από τα παρακάτω είναι μέθοδος;
    • α) Ειδικότητα
    • β) Προϋπηρεσία
    • γ) Όνομα
    • δ) Διδάσκει()
  3. Τι περιγράφει μια κλάση;
    • α) Μόνο ένα συγκεκριμένο αντικείμενο.
    • β) Τις κοινές ιδιότητες και μεθόδους μιας ομάδας αντικειμένων.
    • γ) Μόνο τις τιμές των ιδιοτήτων.
    • δ) Μόνο τις σχέσεις κληρονομικότητας.
  4. Στη σχέση «Φυσικός is a Καθηγητής», ποια κλάση είναι ο πρόγονος;
    • α) Φυσικός
    • β) Καθηγητής
    • γ) Διδάσκει
    • δ) Εργαστηριακή εμπειρία
  5. Ποια μέθοδος αποτελεί παράδειγμα πολυμορφισμού στη δεύτερη άσκηση;
    • α) Αριθμός_Ταυτότητας
    • β) Επώνυμο
    • γ) Διδάσκει()
    • δ) Έτη_Εμπειρίας
  6. Ποια πρόταση περιγράφει σωστά την κληρονομικότητα;
    • α) Μια κλάση-απόγονος αποκτά στοιχεία από την κλάση-πρόγονο.
    • β) Όλα τα αντικείμενα αποκτούν ίδιες τιμές.
    • γ) Οι μέθοδοι παύουν να υπάρχουν.
    • δ) Μια κλάση δεν μπορεί να έχει ιδιότητες.

Απαντήσεις Πολλαπλής Επιλογής

  1. γ) Επώνυμο.
  2. δ) Διδάσκει().
  3. β) Τις κοινές ιδιότητες και μεθόδους μιας ομάδας αντικειμένων.
  4. β) Καθηγητής.
  5. γ) Διδάσκει().
  6. α) Μια κλάση-απόγονος αποκτά στοιχεία από την κλάση-πρόγονο.

Άσκηση Αντιστοίχισης

Να αντιστοιχίσετε τα στοιχεία της Στήλης Α με τα στοιχεία της Στήλης Β.

Στήλη Α Στήλη Β
1. Κλάση α) Συμπεριφορά αντικειμένου
2. Αντικείμενο β) Πρότυπο δημιουργίας αντικειμένων
3. Ιδιότητα γ) Συγκεκριμένη οντότητα της κλάσης
4. Μέθοδος() δ) Χαρακτηριστικό αντικειμένου
5. Πολυμορφισμός ε) Ίδιο όνομα μεθόδου με διαφορετική συμπεριφορά
6. Κληρονομικότητα στ) Απόκτηση ιδιοτήτων και μεθόδων από άλλη κλάση

Απαντήσεις Αντιστοίχισης

  • 1 → β (Κλάση → Πρότυπο δημιουργίας αντικειμένων)
  • 2 → γ (Αντικείμενο → Συγκεκριμένη οντότητα της κλάσης)
  • 3 → δ (Ιδιότητα → Χαρακτηριστικό αντικειμένου)
  • 4 → α (Μέθοδος → Συμπεριφορά αντικειμένου)
  • 5 → ε (Πολυμορφισμός → Ίδιο όνομα μεθόδου με διαφορετική συμπεριφορά)
  • 6 → στ (Κληρονομικότητα → Απόκτηση ιδιοτήτων και μεθόδων από άλλη κλάση)

Συχνές Ερωτήσεις για τον Αντικειμενοστραφή Προγραμματισμό

Τι είναι ένα αντικείμενο;

Αντικείμενο είναι μια συγκεκριμένη οντότητα του προγράμματος που δημιουργείται με βάση μια κλάση. Κάθε αντικείμενο έχει δικές του τιμές στις ιδιότητές του και μπορεί να εκτελεί μεθόδους. Για παράδειγμα, από την κλάση «Μαθητής» μπορούν να δημιουργηθούν τα αντικείμενα «Μαρία» και «Νίκος».

Τι είναι οι ιδιότητες ενός αντικειμένου;

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

Τι είναι οι μέθοδοι;

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

Τι είναι οι κλάσεις;

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

Ποια είναι η διαφορά ανάμεσα σε κλάση και αντικείμενο;

Η κλάση είναι το γενικό πρότυπο, ενώ το αντικείμενο είναι ένα συγκεκριμένο στιγμιότυπο της κλάσης. Για παράδειγμα, η «Μαθητής» είναι κλάση, ενώ ο «Νίκος» είναι ένα αντικείμενο αυτής της κλάσης.

Τι είναι η κληρονομικότητα;

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

Τι είναι η κλάση-πρόγονος;

Η κλάση-πρόγονος είναι η αρχική ή γενικότερη κλάση από την οποία κληρονομούν μία ή περισσότερες άλλες κλάσεις. Στο παράδειγμα των εκπαιδευτικών, η κλάση «Καθηγητής» είναι η κλάση-πρόγονος.

Τι είναι η κλάση-απόγονος;

Η κλάση-απόγονος είναι η κλάση που κληρονομεί ιδιότητες και μεθόδους από μια κλάση-πρόγονο. Μπορεί να χρησιμοποιεί τα κληρονομημένα στοιχεία, να προσθέτει νέα και να επαναπροσδιορίζει τη συμπεριφορά μεθόδων. Στο παράδειγμα, οι κλάσεις «Μαθηματικός», «Φυσικός» και «Πληροφορικάριος» είναι κλάσεις-απόγονοι.

Τι είναι ο πολυμορφισμός;

Πολυμορφισμός είναι η δυνατότητα της ίδιας μεθόδου να έχει διαφορετική υλοποίηση σε διαφορετικές κλάσεις. Για παράδειγμα, η μέθοδος Διδάσκει() μπορεί να υλοποιείται διαφορετικά στην κλάση «Μαθηματικός», διαφορετικά στην κλάση «Φυσικός» και διαφορετικά στην κλάση «Πληροφορικάριος».

Τι είναι η ενθυλάκωση;

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

Ποια είναι η σχέση ανάμεσα στις ιδιότητες και τις μεθόδους;

Οι ιδιότητες περιγράφουν τα δεδομένα ή την κατάσταση ενός αντικειμένου, ενώ οι μέθοδοι περιγράφουν τις ενέργειες που μπορεί να εκτελέσει. Για παράδειγμα, η ιδιότητα «βαθμός» αποθηκεύει μια τιμή, ενώ η μέθοδος ΥπολόγισεΜέσοΌρο() εκτελεί έναν υπολογισμό.

Ποια είναι η σχέση ανάμεσα στην κληρονομικότητα και τον πολυμορφισμό;

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

Trusted by some of the biggest brands

Spaces Logo
Next Logo White
Hemisferio Logo White
Digitalbox White
CGLobal White
Abstract Logo White
Business Coach Glyph

We’re Waiting To Help You

Get in touch with us today and let’s start transforming your business from the ground up.