User Tools

Site Tools


oop:introduction

Differences

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

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Next revision Both sides next revision
oop:introduction [2018/02/16 15:48]
gthanos
oop:introduction [2020/02/21 11:09]
gthanos [Περιεχόμενα της Κλάσης]
Line 21: Line 21:
 Για παράδειγμα, όταν παράγεται ένα αυτοκίνητο, αυτό αποτελεί υλοποίηση του βασικού σχεδίου του αυτοκινήτου, έτσι όπως αυτό υλοποιείται από το εργοστάσιο κατασκευής. Μέρος του **σχεδίου** είναι η ύπαρξη κάποιων παραμέτρων όπως το χρώμα ή το επίπεδο του εξοπλισμού. Για παράδειγμα, όταν παράγεται ένα αυτοκίνητο, αυτό αποτελεί υλοποίηση του βασικού σχεδίου του αυτοκινήτου, έτσι όπως αυτό υλοποιείται από το εργοστάσιο κατασκευής. Μέρος του **σχεδίου** είναι η ύπαρξη κάποιων παραμέτρων όπως το χρώμα ή το επίπεδο του εξοπλισμού.
  
-Τον ρόλο του **σχεδίου** με την έννοια που αναφέρεται παραπάνω τον παίζει η **κλάση**. Η κλάση αποτελεί το σχέδιο με βάση το οποίο αντικείμενα του συγκεκριμένου τύπου (της συγκεκριμένης κλάσηςυλοποιούνται σε ένα πρόγραμμα. +Στον αντικειμενοστραφή προγραμματισμό, το ρόλο του **σχεδίου** με την έννοια που αναφέρεται παραπάνω τον παίζει η **κλάση**. Η κλάση αποτελεί το σχέδιο με βάση το οποίο αντικείμενα του τύπου της συγκεκριμένης κλάσης υλοποιούνται σε ένα πρόγραμμα. 
  
-Όλα τα αντικείμενα της ίδιας κλάσης διέπονται από τις ίδιες //εσωτερικές μεταβλητές// (που αποτελούν τα δεδομένα ή πεδία της κλάσης) και από τις ίδιες //συμπεριφορές// (//μεθόδους ή συναρτήσεις//). Τα αντικείμενα της ίδιας κλάσης μπορεί να διαφέρουν ως προς τις τιμές των //εσωτερικών τους μεταβλητών//{{ :oop:class-object2.png ?200|}}+Όλα τα αντικείμενα της ίδιας κλάσης διέπονται από τις ίδιες //εσωτερικές μεταβλητές// (που αποτελούν τα δεδομένα ή πεδία της κλάσης) και από τις ίδιες //συμπεριφορές// (//μεθόδους ή συναρτήσεις//). Τα αντικείμενα της ίδιας κλάσης μπορεί να διαφέρουν ως προς τις τιμές των //εσωτερικών τους μεταβλητών//
  
-Το διπλανό σχήμα απεικονίζει διαφορετικές υλοποιήσεις ενός αυτοκινήτου με βάση το αρχικό σχέδιο του συγκεκριμένου μοντέλου. Αντιστρέφοντας το παράδειγμα του αυτοκινήτου, όλα τα αυτοκίνητα του συγκεκριμένου μοντέλου αποτελούν υλοποιήσεις του ίδιου αρχικού σχεδίου. {{:oop:astra-class-object.png?250 }} |+ 
 +{{ :oop:class-object2.png ?400 }} 
 + 
 +Το παρακάτω σχήμα απεικονίζει διαφορετικές υλοποιήσεις ενός αυτοκινήτου με βάση το αρχικό σχέδιο του συγκεκριμένου μοντέλου. Αντιστρέφοντας το παράδειγμα του αυτοκινήτου, όλα τα αυτοκίνητα του συγκεκριμένου μοντέλου αποτελούν υλοποιήσεις του ίδιου αρχικού σχεδίου.  
 + 
 +{{ :oop:astra-class-object.png?500 }}
  
 ==== Κατασκευαστές της Κλάσης (Class Constructors) ==== ==== Κατασκευαστές της Κλάσης (Class Constructors) ====
Line 31: Line 36:
 Στον πραγματικό κόσμο μπορούμε να έχουμε διαφορετικές υλοποιήσεις ενός σχεδίου, διαφοροποιώντας κάποιες αρχικές παραμέτρους στο σχέδιο αυτό. Χαρακτηριστικό παράδειγμα από τον πραγματικό κόσμο αποτελεί το αυτοκίνητο. Για ένα συγκεκριμένο μοντέλο αυτοκινήτου μπορούμε να έχουμε διαφοροποίηση στο επίπεδο του εξοπλισμού ή στο χρώμα. Για κάθε μοντέλο παράγονται χιλιάδες αυτοκίνητα, όπου το κάθε ένα έχει συγκεκριμένα χαρακτηριστικά όπως ο κυβισμός, το χρώμα και το επίπεδο του εξοπλισμού. Στον πραγματικό κόσμο μπορούμε να έχουμε διαφορετικές υλοποιήσεις ενός σχεδίου, διαφοροποιώντας κάποιες αρχικές παραμέτρους στο σχέδιο αυτό. Χαρακτηριστικό παράδειγμα από τον πραγματικό κόσμο αποτελεί το αυτοκίνητο. Για ένα συγκεκριμένο μοντέλο αυτοκινήτου μπορούμε να έχουμε διαφοροποίηση στο επίπεδο του εξοπλισμού ή στο χρώμα. Για κάθε μοντέλο παράγονται χιλιάδες αυτοκίνητα, όπου το κάθε ένα έχει συγκεκριμένα χαρακτηριστικά όπως ο κυβισμός, το χρώμα και το επίπεδο του εξοπλισμού.
  
-Ανάλογα, στον αντικειμενοστραφή προγραμματισμό, οποιαδήποτε κλάση μπορεί να δώσει πολλαπλά διαφορετικά αντικείμενα. Η κλάση για τα αντικείμενα είναι το βασικό σχέδιο μέσω του οποίου δημιουργούνται. Τα αντικείμενα που παράγει μία κλάση μπορεί να διαφοροποιούνται ως προς τα χαρακτηριστικά τους. Σκεφτείτε το ανάλογο ενός μοντέλου-τύπου αυτοκινήτου, όπου όλα τα αυτοκίνητα που παράγονται υπακούουν  στο ίδιο βασικό σχέδιο, αλλά διαφοροποιούνται ως προς τα χαρακτηριστικά που αναφέραμε παραπάνω.+Ανάλογα, στον αντικειμενοστραφή προγραμματισμό, οποιαδήποτε κλάση μπορεί να δώσει πολλαπλά διαφορετικά αντικείμενα. Η κλάση είναι το βασικό σχέδιο μέσω του οποίου δημιουργούνται τα αντικείμενα. Τα αντικείμενα μίας κλάσης, φέρουν τον τύπο της κλάσης που τα δημιούργησεαλλά διαφοροποιούνται ως προς τα επιμέρους χαρακτηριστικά τους.  
 + 
 +Σκεφτείτε το ανάλογο ενός μοντέλου αυτοκινήτου, όπου όλα τα αυτοκίνητα που παράγονται υπακούουν  στο ίδιο βασικό σχέδιο, αλλά διαφοροποιούνται ως προς τα χαρακτηριστικά που αναφέραμε παραπάνω.
  
-Κάθε αντικείμενο υλοποιείται από μία μέθοδο που καλείται κατασκευαστής (//constructor//). Ο κατασκευαστής της κλάσης υλοποιεί το κάθε αντικείμενο με βάση το σχέδιο της κλάσης και μπορεί να κληθεί για διαφορετικά αντικείμενα με διαφορετικές παραμέτρους, οδηγώντας τελικά σε διαφοροποιημένα αντικείμενα ως προς τα χαρακτηριστικά τους. +Στον αντικειμενοστραφή προγραμματισμό τα αντικείμενα υλοποιούνται από μία ειδικίη μέθοδο που καλείται κατασκευαστής (//constructor//). Ο κατασκευαστής της κλάσης μπορεί να κληθεί για διαφορετικά αντικείμενα με διαφορετικές παραμέτρους, οδηγώντας τελικά σε διαφοροποιημένα αντικείμενα ως προς τα επιμέρους χαρακτηριστικά τους. 
  
-Μία κλάση έχει τουλάχιστον ένα κατασκευαστή. Οι κατασκευαστές είναι μέθοδοι (//συναρτήσεις//) που κάνουν τα εξής:+Μία κλάση έχει τουλάχιστον ένα κατασκευαστή.  Συνοπτικά, οι κατασκευαστές είναι μέθοδοι (//συναρτήσεις//) που κάνουν τα εξής:
   - Δεσμεύουν την απαραίτητη μνήμη για το νέο αντικείμενο.   - Δεσμεύουν την απαραίτητη μνήμη για το νέο αντικείμενο.
-  - Αρχικοποιούν το αντικείμενο με βάση τις αρχικές τιμές των παραμέτρων με τις οποίες καλείται ο κατασκευαστής της κλάσης.+  - Αρχικοποιούν το αντικείμενο με βάση τις αρχικές τιμές των παραμέτρων με τις οποίες καλούνται.
  
 ==== Περιεχόμενα της Κλάσης ==== ==== Περιεχόμενα της Κλάσης ====
Line 48: Line 55:
   - **Μεθόδους**: Συναρτήσεις οι οποίες μπορεί να λαμβάνουν τυπικές παραμέτρους, αλλά σε κάθε περίπτωση έχουν πρόσβαση σε όλα τα πεδία (δεδομένα) της κλάσης.   - **Μεθόδους**: Συναρτήσεις οι οποίες μπορεί να λαμβάνουν τυπικές παραμέτρους, αλλά σε κάθε περίπτωση έχουν πρόσβαση σε όλα τα πεδία (δεδομένα) της κλάσης.
  
 +/* 
 === Αντικείμενα ως πεδία της κλάσης === === Αντικείμενα ως πεδία της κλάσης ===
  
Line 91: Line 99:
 </WRAP> </WRAP>
  
-/*  
 === Διάκριση στην προσβασιμότητα των πεδίων και των μεθόδων από άλλες κλάσεις === === Διάκριση στην προσβασιμότητα των πεδίων και των μεθόδων από άλλες κλάσεις ===
  
Line 145: Line 152:
 === Ένα σύντομο παράδειγμα κληρονομικότητας === === Ένα σύντομο παράδειγμα κληρονομικότητας ===
  
-Όταν εφευρέθηκε το ποδήλατο με ταχύτητες, ο εφευρέτης χρησιμοποίησε το υφιστάμενο βασικό σχέδιο του ποδηλάτου για να προσθέσει τον μηχανισμό των ταχυτήτων και να δημιουργήσει τον νέο τύπο ποδηλάτου, το ποδήλατο με ταχύτητες. Σε αναλογία, όταν δημιουργήθηκε το πρώτο αυτοκίνητο για κίνηση εκτός δρόμου (τύπου 4x4) αυτό προήλθε ως εξέλιξη του βασικού σχεδίου του αυτοκινήτου διαφοροποιώντας κάποια χαρακτηριστικά στο αρχικό σχέδιο (αμορτισέρ, κιβώτιο ταχυτήτων, λάστιχα, κίνηση και στους 4 τροχούς κλπ). Το βασικό σχέδιο του αυτοκινήτου δεν μπορεί να καλύψει τις ανάγκες κίνησης εκτός δρόμου, αποτελεί όμως τη βάση για την δημιουργία ενός νέου τύπου αυτοκινήτου που επιτρέπει την κίνηση και εκτός δρόμου.+Όταν εφευρέθηκε το ποδήλατο με ταχύτητες, ο εφευρέτης χρησιμοποίησε το υφιστάμενο βασικό σχέδιο του ποδηλάτου για να προσθέσει τον μηχανισμό των ταχυτήτων και να δημιουργήσει τον νέο τύπο ποδηλάτου, το ποδήλατο με ταχύτητες. Με αυτό τον τρόπο το βασικό σχέδιο του ποδηλάτου επεκτάθηκε δημιουργώντας ένα νέο τύπο που περιέχει όλα τα χαρακτηριστικά του προηγούμενου, όπως ρόδεςτιμόνι και πετάλια.
  
 Δείτε τα παρακάτω σχηματικά παραδείγματα: ** αυτοκίνητο --> αυτοκίνητο για κίνηση εκτός δρόμου, ποδήλατο --> ποδήλατο με ταχύτητες** Δείτε τα παρακάτω σχηματικά παραδείγματα: ** αυτοκίνητο --> αυτοκίνητο για κίνηση εκτός δρόμου, ποδήλατο --> ποδήλατο με ταχύτητες**
oop/introduction.txt · Last modified: 2020/02/21 11:17 (external edit)