oop:introduction

Differences

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

Link to this comparison view

Next revision
Previous revision
Next revision Both sides next revision
oop:introduction [2015/01/20 10:59]
gthanos created
oop:introduction [2015/01/20 13:15]
gthanos [Κατασκευαστές της Κλάσης (Class Constructors)]
Line 16: Line 16:
 ===== Η Κλάση ===== ===== Η Κλάση =====
  
-Τα αντικείμενα που περιγράψαμε παραπάνω αποτελούν (εναλλακτικές) υλοποιήσεις ενός βασικού ​μοντέλου ή σχεδίου. Για παράδειγμα όταν αγοράζει κάποιος ένα αυτοκίνητο,​ αυτό αποτελεί υλοποίηση ​ενός ​βασικού σχεδίου. Μέρος του **σχεδίου** είναι η ύπαρξη κάποιων παραμέτρων όπως το χρώμα ή το επίπεδο του εξοπλισμού.+Τα αντικείμενα που περιγράψαμε παραπάνω αποτελούν (εναλλακτικές) υλοποιήσεις ενός βασικού σχεδίου. Για παράδειγμαόταν αγοράζει κάποιος ένα αυτοκίνητο,​ αυτό αποτελεί υλοποίηση ​του ​βασικού σχεδίου ​του αυτοκινήτου,​ έτσι όπως αυτό υλοποιείται από το εργαστάσιο κατασκευής. Μέρος του **σχεδίου** είναι η ύπαρξη κάποιων παραμέτρων όπως το χρώμα ή το επίπεδο του εξοπλισμού. 
 + 
 +| Τον ρόλο του **σχεδίου** με την έννοια που αναφέρεται παραπάνω τον παίζει η **κλάση**. Η κλάση αποτελεί το σχέδιο με βάση το οποίο αντικείμενα του συγκεκριμένου τύπου της κλάσης υλοποιούνται σε ένα πρόγραμμα. Τα αντικείμενα μιας κλάσης διέπονται από τις ίδιες //​εσωτερικές μεταβλητές//​ (δεδομένα) και από τις ίδιες //​συμπεριφορές//​ (συναρτήσεις). Τα αντικείμενα της ίδιας κλάσης μπορεί να διαφέρουν ως προς το περιεχόμενο των //​εσωτερικών τους μεταβλητών//​. ​ | {{ :​oop:​class-object.png ?200|}} | 
 + 
 +| Το διπλανό σχήμα απεικονίζει διαφορετικές υλοποιήσεις ενός αυτοκινήτου με βάση το αρχικό σχέδιο του συγκεκριμένου μοντέλου. Αντιστρέφοντας το παράδειγμα του αυτοκινήτου,​ όλα τα αυτοκίνητα του συγκεκριμένου μοντέλου αποτελούν υλοποιήσεις του ίδιου αρχικού σχεδίου. | {{:​oop:​car-class-object.jpg?​100 }} | 
 + 
 +==== Κατασκευαστές της Κλάσης (Class Constructors) ==== 
 + 
 +Στον πραγματικό κόσμο μπορούμε να έχουμε διαφορετικές υλοποιήσεις ενός σχεδίου,​ διαφοροποιώντας κάποιες αρχικές παραμέτρους στο σχέδιο αυτό. Για παράδειγμα,​ μπορούμε να έχουμε διαφορετικές εκδόσεις για τα αυτοκίνητα ενός μοντέλου (π.χ. διαφοροποίηση στο επίπεδο του εξοπλισμού ή στο χρώμα).  
 + 
 +Ανάλογα,​ στον αντικειμενοστραφή προγραμματισμό,​ μία κλάση μπορεί να δώσει διαφοροποιημένα αντικείμενα. Κάθε αντικείμενο υλοποιείται από μία μέθοδο που καλείται κατασκευαστής (//​constructor//​). Ο κατασκευαστής της κλάσης υλοποιεί το κάθε αντικείμενο με βάση το σχέδιο της κλάσης μπορεί να κληθεί για διαφορετικά αντικείμενα με διαφορετικές παραμέτρους,​ οδηγώντας τελικά σε διαφοροποιημένα αντικείμενα ως προς τα χαρακτηριστικά τους.  
 + 
 +Mια κλάση μπορεί να έχει περισσότερους του ενός κατασκευαστές.  
 + 
 +Οι κατασκευαστές κάνουν τα εξής: 
 +  * Δεσμεύουν την απαραίτητη μνήμη για το νέο αντικείμενο. 
 +  * Αρχικοποιούν το αντικείμενο με βάση τις αρχικές τιμές των παραμέτρων με τις οποίες καλείται ο κατασκευαστής. 
 + 
 +==== Περιεχόμενα της Κλάσης ==== 
 + 
 +Κάθε κλάση περιέχει κατά βάση τρία (3) πράγματα:​ 
 +  - **Δεδομένα**. Τα δεδομένα διακρίνονται σε: 
 +    * Βασικούς τύπους δεδομένων (Primitive Types), char, int, long, float, double, arrays κλπ 
 +    * Σύνθετους τύπους δεδομένων (Reference Types), Strings, Arrays, Objects κλπ 
 +  - **Kατασκευαστές αντικειμένων**. 
 +  - **Μεθόδους** (συναρτήσεις στην γλώσσα C) 
 + 
  
-Τον ρόλο του **σχεδίου** με την έννοια που αναφέρεται παραπάνω τον παίζει η **κλάση**. Η κλάση αποτελεί το σχέδιο με βάση το οποίο αντικείμενα του τύπου της κλάσης υλοποιούνται σε ένα πρόγραμμα. 
  
  
oop/introduction.txt · Last modified: 2017/02/16 08:34 by gthanos