User Tools

Site Tools


oop:introduction

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

oop:introduction [2020/02/21 11:13] – [Κληρονομικότητα] gthanosoop:introduction [2020/02/21 11:17] (current) – external edit 127.0.0.1
Line 163: Line 163:
  
 **Συμβάσεις:** Για το **ποδήλατο με ταχύτητες** η κλάση **ποδήλατο** αποτελεί την γονική κλάση (__Super Class__). Αντίστοιχα για το **ποδήλατο**, το **ποδήλατο με ταχύτητες** αποτελεί υποκλάση (__Sub Class__) αυτού. **Συμβάσεις:** Για το **ποδήλατο με ταχύτητες** η κλάση **ποδήλατο** αποτελεί την γονική κλάση (__Super Class__). Αντίστοιχα για το **ποδήλατο**, το **ποδήλατο με ταχύτητες** αποτελεί υποκλάση (__Sub Class__) αυτού.
 +
 +
  
 <WRAP tip 80% center round> <WRAP tip 80% center round>
Line 170: Line 172:
 </WRAP> </WRAP>
  
-Στην παρακάτω εικόνα παρουσιάζεται εποπτικά ένα παράδειγμα κληρονομικότητας της κλάσης του ποδηλάτου. Από την γενική κλάση του ποδηλάτου προκύπτουν δύο επιμέρους κλάσεις **α)** το ποδήλατο για δύο επιβάτες (χωρίς ταχύτητες) **β)** το ποδήλατο με ταχύτητες. <WRAP todo round>Μπορείτε να προτείνετε κάποια άλλη ιεραρχία κλάσεων για κάποια άλλη οντότητα (π.χ. το αυτοκίνητο) σε αναλογία με αυτή που περιγράψαμε για το ποδήλατο;</WRAP>+Στην παρακάτω εικόνα παρουσιάζεται εποπτικά ένα παράδειγμα κληρονομικότητας της κλάσης του ποδηλάτου. Από την γενική κλάση του ποδηλάτου προκύπτουν δύο επιμέρους κλάσεις **α)** το ποδήλατο για δύο επιβάτες (χωρίς ταχύτητες) **β)** το ποδήλατο με ταχύτητες. 
  
 {{  :oop:bicycle-hierarchy.png?400  }} {{  :oop:bicycle-hierarchy.png?400  }}
 +
 +<WRAP todo 80% center round>Μπορείτε να προτείνετε κάποια άλλη ιεραρχία κλάσεων για κάποια άλλη οντότητα (π.χ. το αυτοκίνητο) σε αναλογία με αυτή που περιγράψαμε για το ποδήλατο;</WRAP>
 +
  
  
Line 183: Line 188:
 Ανάλογη είναι η λειτουργία της **διεπαφής** (interface) για τον αντικειμενοστραφή προγραμματισμό. Ορίζουμε μία **διεπαφή**, ως ένα σύνολο από μεθόδους δίνοντας μόνο τους ορισμούς των μεθόδων, χωρίς την υλοποίηση τους. Οι μέθοδοι αυτές περιγράφουν τους τρόπους αλληλεπίδρασης των υπόλοιπων κλάσεων με τις κλάσεις που υλοποιούν τις συγκεκριμένες διεπαφές.  Ανάλογη είναι η λειτουργία της **διεπαφής** (interface) για τον αντικειμενοστραφή προγραμματισμό. Ορίζουμε μία **διεπαφή**, ως ένα σύνολο από μεθόδους δίνοντας μόνο τους ορισμούς των μεθόδων, χωρίς την υλοποίηση τους. Οι μέθοδοι αυτές περιγράφουν τους τρόπους αλληλεπίδρασης των υπόλοιπων κλάσεων με τις κλάσεις που υλοποιούν τις συγκεκριμένες διεπαφές. 
  
-Σε αναλογία με τον πραγματικό κόσμο, σκεφτείτε ότι θέλετε να προτυποποιήσετε την διεπαφή της τηλεόρασης. Οποιαδήποτε τηλεόραση θα πρέπει να έχει __τουλάχιστον__ τα εξής: είσοδο για καλώδιο τροφοδοσίας ρεύματος, power button, κουμπί channel up/down, κουμπί volume up/down και μενού για τη διαχείριση των καναλιών και οθόνη. Οποιαδήποτε τηλεόραση μπορεί να έχει περισσότερα από τα παραπάνω, αλλά δεν μπορεί να έχει λιγότερα. Η διεπαφή επομένως ορίζει τα ελάχιστα ή απαραίτητα που πρέπει να υλοποιεί μία κλάση προκειμένου να είναι συγκεκριμένου τόπου. Για παράδειγμα, μία τηλεόραση χωρίς κουμπί για να αλλάζουν τα κανάλια ή χωρίς οθόνη μάλλον δεν συγκεντρώνει όλα τα χαρακτηριστικά της τηλεόρασης.+Σε αναλογία με τον πραγματικό κόσμο, σκεφτείτε ότι θέλετε να προτυποποιήσετε την διεπαφή της τηλεόρασης. Οποιαδήποτε τηλεόραση θα πρέπει να έχει __τουλάχιστον__ τα εξής: είσοδο για καλώδιο τροφοδοσίας ρεύματος, power button, κουμπί channel up/down, κουμπί volume up/down και μενού για τη διαχείριση των καναλιών και οθόνη. Οποιαδήποτε τηλεόραση μπορεί να έχει περισσότερα από τα παραπάνω, αλλά δεν μπορεί να έχει λιγότερα. Η διεπαφή επομένως ορίζει τα ελάχιστα ή απαραίτητα που πρέπει να υλοποιεί μία κλάση προκειμένου να είναι συγκεκριμένου τύπου. Για παράδειγμα, μία τηλεόραση χωρίς κουμπί για να αλλάζουν τα κανάλια ή χωρίς οθόνη μάλλον δεν συγκεντρώνει όλα τα χαρακτηριστικά της τηλεόρασης.
  
 <WRAP tip 80% center round> <WRAP tip 80% center round>
-Παρατηρήστε ότι η διεπαφή όπως την ορίσαμε παραπάνω δεν σας λέει τίποτα για το πως είναι φτιαγμένη εσωτερικά η τηλεόραση ή ποιες τεχνολογίες χρησιμοποιεί. Το μόνο που μπορεί να σας εξασφαλίσει το interface που θα προτιποιήσετε είναι να διαπιστώσετε εάν μία συσκευή που βρίσκεται μπροστά σας είναι τηλεόραση ή όχι.+Παρατηρήστε ότι η διεπαφή όπως την ορίσαμε παραπάνω δεν σας λέει τίποτα για το πως είναι φτιαγμένη εσωτερικά η τηλεόραση ή ποιες τεχνολογίες χρησιμοποιεί. Το μόνο που μπορεί να σας εξασφαλίσει το interface που θα ορίσετε είναι να διαπιστώσετε εάν μία συσκευή που βρίσκεται μπροστά σας είναι τηλεόραση ή όχι.
 </WRAP> </WRAP>
  
Line 198: Line 203:
   * top: επιστροφη της τιμής του κορυφαίου στοιχείου της στοίβας (χωρίς να αφαιρεθεί).   * top: επιστροφη της τιμής του κορυφαίου στοιχείου της στοίβας (χωρίς να αφαιρεθεί).
  
-Αν οποιαδήποτε κλάση υλοποιεί τις παραπάνω μεθόδους τότε μπορούμε να πούμε ότι υλοποιεί την διεπαφή της στοίβας (interface Stack).+Αν οποιαδήποτε κλάση υλοποιεί τις παραπάνω μεθόδους τότε μπορούμε να πούμε ότι υλοποιεί την διεπαφή της στοίβας.
  
-Στον αντικειμενοστραφή προγραμματισμό, όσες κλάσεις υλοποιούν **ΟΛΕΣ** τις μεθόδους μία διεπαφής, υλοποιούν συνολικά τη διεπαφή. Εάν έστω και μία μέθοδος δεν υλοποιείται, δεν υλοποιείται και η διεπαφή.+Στον αντικειμενοστραφή προγραμματισμό, όσες κλάσεις υλοποιούν **ΟΛΕΣ** τις μεθόδους μίας διεπαφής, υλοποιούν συνολικά τη διεπαφή. Εάν έστω και μία μέθοδος δεν υλοποιείται, δεν υλοποιείται και η διεπαφή.
  
  
oop/introduction.1582283590.txt.gz · Last modified: 2020/02/21 11:13 by gthanos