| Both sides previous revision
Previous revision
Next revision
|
Previous revision
Next revision
Both sides next revision
|
oop:introduction [2020/02/21 11:03] gthanos [Η Κλάση] |
oop:introduction [2020/02/21 11:09] gthanos [Περιεχόμενα της Κλάσης] |
| Στον πραγματικό κόσμο μπορούμε να έχουμε διαφορετικές υλοποιήσεις ενός σχεδίου, διαφοροποιώντας κάποιες αρχικές παραμέτρους στο σχέδιο αυτό. Χαρακτηριστικό παράδειγμα από τον πραγματικό κόσμο αποτελεί το αυτοκίνητο. Για ένα συγκεκριμένο μοντέλο αυτοκινήτου μπορούμε να έχουμε διαφοροποίηση στο επίπεδο του εξοπλισμού ή στο χρώμα. Για κάθε μοντέλο παράγονται χιλιάδες αυτοκίνητα, όπου το κάθε ένα έχει συγκεκριμένα χαρακτηριστικά όπως ο κυβισμός, το χρώμα και το επίπεδο του εξοπλισμού. | Στον πραγματικό κόσμο μπορούμε να έχουμε διαφορετικές υλοποιήσεις ενός σχεδίου, διαφοροποιώντας κάποιες αρχικές παραμέτρους στο σχέδιο αυτό. Χαρακτηριστικό παράδειγμα από τον πραγματικό κόσμο αποτελεί το αυτοκίνητο. Για ένα συγκεκριμένο μοντέλο αυτοκινήτου μπορούμε να έχουμε διαφοροποίηση στο επίπεδο του εξοπλισμού ή στο χρώμα. Για κάθε μοντέλο παράγονται χιλιάδες αυτοκίνητα, όπου το κάθε ένα έχει συγκεκριμένα χαρακτηριστικά όπως ο κυβισμός, το χρώμα και το επίπεδο του εξοπλισμού. |
| |
| Ανάλογα, στον αντικειμενοστραφή προγραμματισμό, οποιαδήποτε κλάση μπορεί να δώσει πολλαπλά διαφορετικά αντικείμενα. Η κλάση για τα αντικείμενα είναι το βασικό σχέδιο μέσω του οποίου δημιουργούνται. Τα αντικείμενα που παράγει μία κλάση μπορεί να διαφοροποιούνται ως προς τα χαρακτηριστικά τους. Σκεφτείτε το ανάλογο ενός μοντέλου-τύπου αυτοκινήτου, όπου όλα τα αυτοκίνητα που παράγονται υπακούουν στο ίδιο βασικό σχέδιο, αλλά διαφοροποιούνται ως προς τα χαρακτηριστικά που αναφέραμε παραπάνω. | Ανάλογα, στον αντικειμενοστραφή προγραμματισμό, οποιαδήποτε κλάση μπορεί να δώσει πολλαπλά διαφορετικά αντικείμενα. Η κλάση είναι το βασικό σχέδιο μέσω του οποίου δημιουργούνται τα αντικείμενα. Τα αντικείμενα μίας κλάσης, φέρουν τον τύπο της κλάσης που τα δημιούργησε, αλλά διαφοροποιούνται ως προς τα επιμέρους χαρακτηριστικά τους. |
| |
| Κάθε αντικείμενο υλοποιείται από μία μέθοδο που καλείται κατασκευαστής (//constructor//). Ο κατασκευαστής της κλάσης υλοποιεί το κάθε αντικείμενο με βάση το σχέδιο της κλάσης και μπορεί να κληθεί για διαφορετικά αντικείμενα με διαφορετικές παραμέτρους, οδηγώντας τελικά σε διαφοροποιημένα αντικείμενα ως προς τα χαρακτηριστικά τους. | Σκεφτείτε το ανάλογο ενός μοντέλου αυτοκινήτου, όπου όλα τα αυτοκίνητα που παράγονται υπακούουν στο ίδιο βασικό σχέδιο, αλλά διαφοροποιούνται ως προς τα χαρακτηριστικά που αναφέραμε παραπάνω. |
| |
| Μία κλάση έχει τουλάχιστον ένα κατασκευαστή. Οι κατασκευαστές είναι μέθοδοι (//συναρτήσεις//) που κάνουν τα εξής: | Στον αντικειμενοστραφή προγραμματισμό τα αντικείμενα υλοποιούνται από μία ειδικίη μέθοδο που καλείται κατασκευαστής (//constructor//). Ο κατασκευαστής της κλάσης μπορεί να κληθεί για διαφορετικά αντικείμενα με διαφορετικές παραμέτρους, οδηγώντας τελικά σε διαφοροποιημένα αντικείμενα ως προς τα επιμέρους χαρακτηριστικά τους. |
| | |
| | Μία κλάση έχει τουλάχιστον ένα κατασκευαστή. Συνοπτικά, οι κατασκευαστές είναι μέθοδοι (//συναρτήσεις//) που κάνουν τα εξής: |
| - Δεσμεύουν την απαραίτητη μνήμη για το νέο αντικείμενο. | - Δεσμεύουν την απαραίτητη μνήμη για το νέο αντικείμενο. |
| - Αρχικοποιούν το αντικείμενο με βάση τις αρχικές τιμές των παραμέτρων με τις οποίες καλείται ο κατασκευαστής της κλάσης. | - Αρχικοποιούν το αντικείμενο με βάση τις αρχικές τιμές των παραμέτρων με τις οποίες καλούνται. |
| |
| ==== Περιεχόμενα της Κλάσης ==== | ==== Περιεχόμενα της Κλάσης ==== |
| - **Μεθόδους**: Συναρτήσεις οι οποίες μπορεί να λαμβάνουν τυπικές παραμέτρους, αλλά σε κάθε περίπτωση έχουν πρόσβαση σε όλα τα πεδία (δεδομένα) της κλάσης. | - **Μεθόδους**: Συναρτήσεις οι οποίες μπορεί να λαμβάνουν τυπικές παραμέτρους, αλλά σε κάθε περίπτωση έχουν πρόσβαση σε όλα τα πεδία (δεδομένα) της κλάσης. |
| |
| | /* |
| === Αντικείμενα ως πεδία της κλάσης === | === Αντικείμενα ως πεδία της κλάσης === |
| |
| </WRAP> | </WRAP> |
| |
| /* | |
| === Διάκριση στην προσβασιμότητα των πεδίων και των μεθόδων από άλλες κλάσεις === | === Διάκριση στην προσβασιμότητα των πεδίων και των μεθόδων από άλλες κλάσεις === |
| |