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 [2016/01/22 11:31]
gthanos [Κληρονομικότητα]
oop:introduction [2016/02/15 13:48]
gthanos [Κατασκευαστές της Κλάσης (Class Constructors)]
Line 18: Line 18:
 Τα αντικείμενα που περιγράψαμε παραπάνω αποτελούν (εναλλακτικές) υλοποιήσεις ενός βασικού σχεδίου. Για παράδειγμα,​ όταν παράγεται ένα αυτοκίνητο,​ αυτό αποτελεί υλοποίηση του βασικού σχεδίου του αυτοκινήτου,​ έτσι όπως αυτό υλοποιείται από το εργαστάσιο κατασκευής. Μέρος του **σχεδίου** είναι η ύπαρξη κάποιων παραμέτρων όπως το χρώμα ή το επίπεδο του εξοπλισμού. Τα αντικείμενα που περιγράψαμε παραπάνω αποτελούν (εναλλακτικές) υλοποιήσεις ενός βασικού σχεδίου. Για παράδειγμα,​ όταν παράγεται ένα αυτοκίνητο,​ αυτό αποτελεί υλοποίηση του βασικού σχεδίου του αυτοκινήτου,​ έτσι όπως αυτό υλοποιείται από το εργαστάσιο κατασκευής. Μέρος του **σχεδίου** είναι η ύπαρξη κάποιων παραμέτρων όπως το χρώμα ή το επίπεδο του εξοπλισμού.
  
-| Τον ρόλο του **σχεδίου** με την έννοια που αναφέρεται παραπάνω τον παίζει η **κλάση**. Η κλάση αποτελεί το σχέδιο με βάση το οποίο αντικείμενα του συγκεκριμένου τύπου της κλάσης υλοποιούνται σε ένα πρόγραμμα. Τα αντικείμενα μιας κλάσης διέπονται από τις ίδιες //​εσωτερικές μεταβλητές//​ (δεδομένα) και από τις ίδιες //​συμπεριφορές//​ (συναρτήσεις). Τα αντικείμενα της ίδιας κλάσης μπορεί να διαφέρουν ως προς το περιεχόμενο των //​εσωτερικών τους μεταβλητών//​. ​ | {{ :​oop:​class-object2.png ?200|}} |+| Τον ρόλο του **σχεδίου** με την έννοια που αναφέρεται παραπάνω τον παίζει η **κλάση**. Η κλάση αποτελεί το σχέδιο με βάση το οποίο αντικείμενα του συγκεκριμένου τύπου της κλάσης υλοποιούνται σε ένα πρόγραμμα. Τα αντικείμενα μιας κλάσης διέπονται από τις ίδιες //​εσωτερικές μεταβλητές//​ (δεδομένα) και από τις ίδιες //​συμπεριφορές//​ (//μεθόδους//). Τα αντικείμενα της ίδιας κλάσης μπορεί να διαφέρουν ως προς το περιεχόμενο των //​εσωτερικών τους μεταβλητών//​. ​ | {{ :​oop:​class-object2.png ?200|}} |
  
 | Το διπλανό σχήμα απεικονίζει διαφορετικές υλοποιήσεις ενός αυτοκινήτου με βάση το αρχικό σχέδιο του συγκεκριμένου μοντέλου. Αντιστρέφοντας το παράδειγμα του αυτοκινήτου,​ όλα τα αυτοκίνητα του συγκεκριμένου μοντέλου αποτελούν υλοποιήσεις του ίδιου αρχικού σχεδίου. | {{:​oop:​astra-class-object.png?​250 }} | | Το διπλανό σχήμα απεικονίζει διαφορετικές υλοποιήσεις ενός αυτοκινήτου με βάση το αρχικό σχέδιο του συγκεκριμένου μοντέλου. Αντιστρέφοντας το παράδειγμα του αυτοκινήτου,​ όλα τα αυτοκίνητα του συγκεκριμένου μοντέλου αποτελούν υλοποιήσεις του ίδιου αρχικού σχεδίου. | {{:​oop:​astra-class-object.png?​250 }} |
Line 26: Line 26:
 Στον πραγματικό κόσμο μπορούμε να έχουμε διαφορετικές υλοποιήσεις ενός σχεδίου,​ διαφοροποιώντας κάποιες αρχικές παραμέτρους στο σχέδιο αυτό. Για παράδειγμα,​ μπορούμε να έχουμε διαφορετικές εκδόσεις για τα αυτοκίνητα ενός μοντέλου (π.χ. διαφοροποίηση στο επίπεδο του εξοπλισμού ή στο χρώμα). ​ Στον πραγματικό κόσμο μπορούμε να έχουμε διαφορετικές υλοποιήσεις ενός σχεδίου,​ διαφοροποιώντας κάποιες αρχικές παραμέτρους στο σχέδιο αυτό. Για παράδειγμα,​ μπορούμε να έχουμε διαφορετικές εκδόσεις για τα αυτοκίνητα ενός μοντέλου (π.χ. διαφοροποίηση στο επίπεδο του εξοπλισμού ή στο χρώμα). ​
  
-Ανάλογα,​ στον αντικειμενοστραφή προγραμματισμό,​ μία κλάση μπορεί να δώσει διαφοροποιημένα αντικείμενα. Κάθε αντικείμενο υλοποιείται από μία μέθοδο που καλείται κατασκευαστής (//​constructor//​). Ο κατασκευαστής της κλάσης υλοποιεί το κάθε αντικείμενο με βάση το σχέδιο της κλάσης μπορεί να κληθεί για διαφορετικά αντικείμενα με διαφορετικές παραμέτρους,​ οδηγώντας τελικά σε διαφοροποιημένα αντικείμενα ως προς τα χαρακτηριστικά τους. ​+Ανάλογα,​ στον αντικειμενοστραφή προγραμματισμό,​ μία κλάση μπορεί να δώσει διαφοροποιημένα αντικείμενα. Κάθε αντικείμενο υλοποιείται από μία μέθοδο που καλείται κατασκευαστής (//​constructor//​). Ο κατασκευαστής της κλάσης υλοποιεί το κάθε αντικείμενο με βάση το σχέδιο της κλάσης ​και ​μπορεί να κληθεί για διαφορετικά αντικείμενα με διαφορετικές παραμέτρους,​ οδηγώντας τελικά σε διαφοροποιημένα αντικείμενα ως προς τα χαρακτηριστικά τους. ​
  
-Mία κλάση μπορεί να έχει **περισσότερους του ενός** κατασκευαστές. Οι κατασκευαστές είναι συναρτήσεις ​(μέθοδοι) που κάνουν τα εξής:+Μία κλάση μπορεί να έχει **περισσότερους του ενός** κατασκευαστές. Οι κατασκευαστές είναι ​μέθοδοι (//συναρτήσεις//) που κάνουν τα εξής:
   * Δεσμεύουν την απαραίτητη μνήμη για το νέο αντικείμενο.   * Δεσμεύουν την απαραίτητη μνήμη για το νέο αντικείμενο.
-  * Αρχικοποιούν το αντικείμενο με βάση τις αρχικές τιμές των παραμέτρων με τις οποίες καλείται ο κατασκευαστής.+  * Αρχικοποιούν το αντικείμενο με βάση τις αρχικές τιμές των παραμέτρων με τις οποίες καλείται ο κατασκευαστής της κλάσης.
  
 ==== Περιεχόμενα της Κλάσης ==== ==== Περιεχόμενα της Κλάσης ====
oop/introduction.txt · Last modified: 2017/02/16 08:34 by gthanos