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/02/15 13:46]
gthanos [Η Κλάση]
oop:introduction [2016/02/17 08:44]
gthanos
Line 26: Line 26:
 Στον πραγματικό κόσμο μπορούμε να έχουμε διαφορετικές υλοποιήσεις ενός σχεδίου,​ διαφοροποιώντας κάποιες αρχικές παραμέτρους στο σχέδιο αυτό. Για παράδειγμα,​ μπορούμε να έχουμε διαφορετικές εκδόσεις για τα αυτοκίνητα ενός μοντέλου (π.χ. διαφοροποίηση στο επίπεδο του εξοπλισμού ή στο χρώμα). ​ Στον πραγματικό κόσμο μπορούμε να έχουμε διαφορετικές υλοποιήσεις ενός σχεδίου,​ διαφοροποιώντας κάποιες αρχικές παραμέτρους στο σχέδιο αυτό. Για παράδειγμα,​ μπορούμε να έχουμε διαφορετικές εκδόσεις για τα αυτοκίνητα ενός μοντέλου (π.χ. διαφοροποίηση στο επίπεδο του εξοπλισμού ή στο χρώμα). ​
  
-Ανάλογα,​ στον αντικειμενοστραφή προγραμματισμό,​ μία κλάση μπορεί να δώσει διαφοροποιημένα αντικείμενα. Κάθε αντικείμενο υλοποιείται από μία μέθοδο που καλείται κατασκευαστής (//​constructor//​). Ο κατασκευαστής της κλάσης υλοποιεί το κάθε αντικείμενο με βάση το σχέδιο της κλάσης μπορεί να κληθεί για διαφορετικά αντικείμενα με διαφορετικές παραμέτρους,​ οδηγώντας τελικά σε διαφοροποιημένα αντικείμενα ως προς τα χαρακτηριστικά τους. ​+Ανάλογα,​ στον αντικειμενοστραφή προγραμματισμό,​ μία κλάση μπορεί να δώσει διαφοροποιημένα αντικείμενα. Κάθε αντικείμενο υλοποιείται από μία μέθοδο που καλείται κατασκευαστής (//​constructor//​). Ο κατασκευαστής της κλάσης υλοποιεί το κάθε αντικείμενο με βάση το σχέδιο της κλάσης ​και ​μπορεί να κληθεί για διαφορετικά αντικείμενα με διαφορετικές παραμέτρους,​ οδηγώντας τελικά σε διαφοροποιημένα αντικείμενα ως προς τα χαρακτηριστικά τους. ​
  
-Mία κλάση μπορεί να έχει **περισσότερους του ενός** κατασκευαστές. Οι κατασκευαστές είναι συναρτήσεις ​(μέθοδοι) που κάνουν τα εξής:+Μία κλάση μπορεί να έχει **περισσότερους του ενός** κατασκευαστές. Οι κατασκευαστές είναι ​μέθοδοι (//συναρτήσεις//) που κάνουν τα εξής:
   * Δεσμεύουν την απαραίτητη μνήμη για το νέο αντικείμενο.   * Δεσμεύουν την απαραίτητη μνήμη για το νέο αντικείμενο.
-  * Αρχικοποιούν το αντικείμενο με βάση τις αρχικές τιμές των παραμέτρων με τις οποίες καλείται ο κατασκευαστής.+  * Αρχικοποιούν το αντικείμενο με βάση τις αρχικές τιμές των παραμέτρων με τις οποίες καλείται ο κατασκευαστής της κλάσης.
  
 ==== Περιεχόμενα της Κλάσης ==== ==== Περιεχόμενα της Κλάσης ====
Line 63: Line 63:
  
 | Στο διπλανή εικόνα παρουσιάζεται εποπτικά ένα παράδειγμα κληρονομικότητας της κλάσης του ποδηλάτου. Από την γενική κλάση του ποδηλάτου προκύπτουν δύο επιμέρους κλάσεις **α)** το ποδήλατο για δύο επιβάτες (χωρίς ταχύτητες) **β)** το ποδήλατο με ταχύτητες. <WRAP todo round>​Μπορείτε να προτείνετε κάποια άλλη ιεραρχία κλάσεων για κάποια άλλη οντότητα (π.χ. το αυτοκίνητο) σε αναλογία με αυτή που περιγράψαμε για το ποδήλατο;</​WRAP>​| {{:​oop:​bicycle-hierarchy.png?​300 |}} | | Στο διπλανή εικόνα παρουσιάζεται εποπτικά ένα παράδειγμα κληρονομικότητας της κλάσης του ποδηλάτου. Από την γενική κλάση του ποδηλάτου προκύπτουν δύο επιμέρους κλάσεις **α)** το ποδήλατο για δύο επιβάτες (χωρίς ταχύτητες) **β)** το ποδήλατο με ταχύτητες. <WRAP todo round>​Μπορείτε να προτείνετε κάποια άλλη ιεραρχία κλάσεων για κάποια άλλη οντότητα (π.χ. το αυτοκίνητο) σε αναλογία με αυτή που περιγράψαμε για το ποδήλατο;</​WRAP>​| {{:​oop:​bicycle-hierarchy.png?​300 |}} |
 +
  
 ==== Διεπαφές - Interfaces ==== ==== Διεπαφές - Interfaces ====
Line 97: Line 98:
   * Στον αντικειμενοστραφή προγραμματισμό η φάση του σχεδιασμού είναι εξαιρετικά σημαντική. Καλός σχεδιασμός σημαίνει συντηρήσιμος,​ ευκολότερος στην ανάπτυξη κώδικας.   * Στον αντικειμενοστραφή προγραμματισμό η φάση του σχεδιασμού είναι εξαιρετικά σημαντική. Καλός σχεδιασμός σημαίνει συντηρήσιμος,​ ευκολότερος στην ανάπτυξη κώδικας.
  
-| Επόμενο:​ [[:java:class Η κλάση]]|+| Επόμενο:​ [[:java:install ​Εγκατάσταση του περιβάλλοντος ανάπτυξης JDK ]]|
  
  
oop/introduction.txt · Last modified: 2017/02/16 08:34 by gthanos