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 [2015/02/18 13:06]
gthanos [Διεπαφές - Interfaces]
oop:introduction [2015/07/05 07:26]
gthanos [Κατασκευαστές της Κλάσης (Class Constructors)]
Line 7: Line 7:
  
 Τα "​αντικείμενα"​ στον πραγματικό κόσμο έχουν δύο βασικά χαρακτηριστικά:​ Τα "​αντικείμενα"​ στον πραγματικό κόσμο έχουν δύο βασικά χαρακτηριστικά:​
-  - **Κατάσταση (state):** Κάθε αντικείμενο διέπεται από συγκεκριμένα χαρακτηριστικά που ορίζουν την κατάσταση του. Για παράδειγμα ένα αυτοκίνητο έχω συγκεκριμένο χρώμα, ανήκει σε συγκεκριμένο μοντέλο και κάθε χρονική στιγμή έχει μία ταχύτητα και μία κατεύθυνση κίνησης. Τα παραπάνω χαρακτηριστικά διέπουν όλα τα αυτοκίνητα,​ αλλά κάθε αυτοκίνητο έχει τις δικές του τιμές οι οποίες μπορεί να διαφέρουν από τις τιμές άλλων αυτοκινήτων.+  - **Κατάσταση (state):** Κάθε αντικείμενο διέπεται από συγκεκριμένα χαρακτηριστικά που ορίζουν την κατάσταση του. Για παράδειγμα ένα αυτοκίνητο έχει συγκεκριμένο χρώμα, ανήκει σε συγκεκριμένο μοντέλο και κάθε χρονική στιγμή έχει μία ταχύτητα και μία κατεύθυνση κίνησης. Τα παραπάνω χαρακτηριστικά διέπουν όλα τα αυτοκίνητα,​ αλλά κάθε αυτοκίνητο έχει τις δικές του τιμές οι οποίες μπορεί να διαφέρουν από τις τιμές άλλων αυτοκινήτων.
   - **Συμπεριφορά (behaviour)**:​ Κάθε αντικείμενο διέπεται από συγκεκριμένους κανόνες συμπεριφοράς. Για παράδειγμα σε ένα αυτοκίνητο εάν στρίψουμε το τιμόνι στα αριστερά το αυτοκίνητο κινείται αριστερά. __Ο παραπάνω γενικός κανόνας ισχύει για όλα τα αυτοκίνητα__. Η σχέση μεταξύ της γωνίας στροφής του τιμονιού του αυτοκινήτου και της αλλαγή πορείας που αυτή συνεπάγεται μπορεί να διαφέρει μεταξύ διαφορετικών μοντέλων.   - **Συμπεριφορά (behaviour)**:​ Κάθε αντικείμενο διέπεται από συγκεκριμένους κανόνες συμπεριφοράς. Για παράδειγμα σε ένα αυτοκίνητο εάν στρίψουμε το τιμόνι στα αριστερά το αυτοκίνητο κινείται αριστερά. __Ο παραπάνω γενικός κανόνας ισχύει για όλα τα αυτοκίνητα__. Η σχέση μεταξύ της γωνίας στροφής του τιμονιού του αυτοκινήτου και της αλλαγή πορείας που αυτή συνεπάγεται μπορεί να διαφέρει μεταξύ διαφορετικών μοντέλων.
  
 Σε αναλογία των παραπάνω,​ τα αντικείμενα στον αντικειμενοστραφή προγραμματισμό διαθέτουν:​ Σε αναλογία των παραπάνω,​ τα αντικείμενα στον αντικειμενοστραφή προγραμματισμό διαθέτουν:​
   * **Δεδομένα //​(μεταβλητές)//:​** Τα δεδομένα περιγράφουν την κατάσταση του κάθε αντικειμένου και μπορεί η τιμή τους να διαφέρει από αντικείμενο σε αντικείμενο.   * **Δεδομένα //​(μεταβλητές)//:​** Τα δεδομένα περιγράφουν την κατάσταση του κάθε αντικειμένου και μπορεί η τιμή τους να διαφέρει από αντικείμενο σε αντικείμενο.
-  * **Μεθόδους //​(συναρτήσεις)//:​** Οι μέθοδοι περιγράφουν την συμπεριφορά του αντικειμένου και είναι κοινές για όλα τα αντικείμενα ενός συγκεκριμένου τύπου. Για παράδειγμα όλα τα αυτοκίνητα ενός συγκεκριμένου μοντέλου διέπονται απο΄την ίδια σχέση μεταξύ της γωνίας στροφής του τιμονιού και της γωνίας στροφής των δύο μπροστινών τροχών.+  * **Μεθόδους //​(συναρτήσεις)//:​** Οι μέθοδοι περιγράφουν την συμπεριφορά του αντικειμένου και είναι κοινές για όλα τα αντικείμενα ενός συγκεκριμένου τύπου. Για παράδειγμα όλα τα αυτοκίνητα ενός συγκεκριμένου μοντέλου διέπονται από την ίδια σχέση μεταξύ της γωνίας στροφής του τιμονιού και της γωνίας στροφής των δύο μπροστινών τροχών.
  
 ===== Η Κλάση ===== ===== Η Κλάση =====
Line 28: Line 28:
 Ανάλογα,​ στον αντικειμενοστραφή προγραμματισμό,​ μία κλάση μπορεί να δώσει διαφοροποιημένα αντικείμενα. Κάθε αντικείμενο υλοποιείται από μία μέθοδο που καλείται κατασκευαστής (//​constructor//​). Ο κατασκευαστής της κλάσης υλοποιεί το κάθε αντικείμενο με βάση το σχέδιο της κλάσης μπορεί να κληθεί για διαφορετικά αντικείμενα με διαφορετικές παραμέτρους,​ οδηγώντας τελικά σε διαφοροποιημένα αντικείμενα ως προς τα χαρακτηριστικά τους. ​ Ανάλογα,​ στον αντικειμενοστραφή προγραμματισμό,​ μία κλάση μπορεί να δώσει διαφοροποιημένα αντικείμενα. Κάθε αντικείμενο υλοποιείται από μία μέθοδο που καλείται κατασκευαστής (//​constructor//​). Ο κατασκευαστής της κλάσης υλοποιεί το κάθε αντικείμενο με βάση το σχέδιο της κλάσης μπορεί να κληθεί για διαφορετικά αντικείμενα με διαφορετικές παραμέτρους,​ οδηγώντας τελικά σε διαφοροποιημένα αντικείμενα ως προς τα χαρακτηριστικά τους. ​
  
-Mια κλάση μπορεί να έχει περισσότερους του ενός κατασκευαστές. ​ +Mία κλάση μπορεί να έχει ​**περισσότερους του ενός** κατασκευαστές. Οι κατασκευαστές ​είναι συναρτήσεις (μέθοδοι) που ​κάνουν τα εξής:
- +
-Οι κατασκευαστές κάνουν τα εξής:+
   * Δεσμεύουν την απαραίτητη μνήμη για το νέο αντικείμενο.   * Δεσμεύουν την απαραίτητη μνήμη για το νέο αντικείμενο.
   * Αρχικοποιούν το αντικείμενο με βάση τις αρχικές τιμές των παραμέτρων με τις οποίες καλείται ο κατασκευαστής.   * Αρχικοποιούν το αντικείμενο με βάση τις αρχικές τιμές των παραμέτρων με τις οποίες καλείται ο κατασκευαστής.
oop/introduction.txt · Last modified: 2017/02/16 08:34 by gthanos