Αντικειμενοστρεφής Προγραμματισμός Ενότητα 2: Κλάσεις Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)
Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύπου άδειας χρήσης, η άδεια χρήσης αναφέρεται ρητώς. 2
Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικού έργου του διδάσκοντα. Το έργο «Ανοικτά Ακαδημαϊκά Μαθήματα στο TEI Δυτικής Μακεδονίας και στην Ανώτατη Εκκλησιαστική Ακαδημία Θεσσαλονίκης» έχει χρηματοδοτήσει μόνο τη αναδιαμόρφωση του εκπαιδευτικού υλικού. Το έργο υλοποιείται στο πλαίσιο του Επιχειρησιακού Προγράμματος «Εκπαίδευση και Δια Βίου Μάθηση» και συγχρηματοδοτείται από την Ευρωπαϊκή Ένωση (Ευρωπαϊκό Κοινωνικό Ταμείο) και από εθνικούς πόρους. 3
Σκοποί Ενότητας Κατανόηση της έννοιας της κλάσης και του αντικειμένου Γνώση της αναγκαιότητας χρήσης των κλάσεων Εμπέδωση εννοιών private και public μεταβλητών 4
Περιεχόμενα Κλάσεις. Αντικείμενα. Πότε χρησιμοποιούμε κλάσεις. Private και public μεταβλητές και συναρτήσεις. Παραδείγματα. 5
Κλάσεις, αντικείμενα (1) Μια κλάση (class) προσδιορίζει μια κατηγορία (κλάση) αντικειμένων, περιγράφοντας τις λειτουργίες και τα χαρακτηριστικά τους. class pelatis { private: string onoma; double poso_katathesis; public: void set_onoma(string on); void set_poso(double p); double give_toko(); }; 6
Κλάσεις, αντικείμενα (2) Ένα αντικείμενο (object) μιας κλάσης έχει όλες τις λειτουργίες και χαρακτηριστικά της κλάσης στην οποία ανήκει. Λέμε ότι ένα αντικείμενο αποτελεί ένα στιγμιότυπο (instance) μιας κλάσης. int main() {... pelatis p1, p2;... } 7
Κλάσεις, αντικείμενα (3) Οι κλάσεις έχουν παρόμοιο ορισμό με τις δομές. Σαν προσδιοριστικό χρησιμοποιείται η λέξη class. Μια κλάση αποτελείται από μεταβλητές-μέλη και από συναρτήσεις-μέλη. Ο ορισμός πρέπει να τελειώνει με ένα ελληνικό ερωτηματικό. Ο τελεστής :: ονομάζεται τελεστής επίλυσης εμβέλειας και χρησιμοποιείται όταν αναφερόμαστε σε μια οντότητα που έχει οριστεί σε άλλο χώρο εμβέλειας. Η πρόσβαση στα μέλη ενός αντικειμένου γίνεται με τον τελεστήτελεία: «.» Γράφουμε πρώτα το όνομα του αντικειμένου, έπειτα την τελεία και έπειτα την μεταβλητή-μέλος. Αυτό ισχύει και για την κλήση συναρτήσεων-μελών, και τότε λέμε ότι: εφαρμόζουμε την μέθοδο στο αντικείμενο ή στέλνουμε το μήνυμα στο αντικείμενο. 8
Private και public μεταβλητές και συναρτήσεις Τα μέλη μιας κλάσης μπορεί να είναι δημόσια ή ιδιωτικά (θα δούμε και το προσδιοριστικό προστατευμένα (protected) στην κληρονομικότητα). Στα δημόσια υπάρχει πρόσβαση και από συναρτήσεις που δεν είναι μέλη της κλάσης. Τα δημόσια δηλώνονται κάτω από το προσδιοριστικό: public. Στα ιδιωτικά επιτρέπεται πρόσβαση μόνο από τις συναρτήσεις-μέλη της κλάσης. Τα ιδιωτικά δηλώνονται κάτω από το προσδιοριστικό: private. 9
Βιβλιογραφία Δημήτρης Συνδουκάς 2007, Αντικειμενοστρεφής προγραμματισμός με C++ - Ασκήσεις, Εσωτερική έκδοση του ΤΕΙ Νίκος Μ. Χατζηγιαννάκης 2008, Η Γλώσσα C++ σε βάθος (1η έκδοση), ΚΛΕΙΔΑΡΙΘΜΟΣ ΕΠΕ, Αθήνα [ISBN: 978-960-461-143-0] Walter Savitch. 2011, Πλήρης C++ (1η έκδοση), Α. ΤΖΙΟΛΑ & ΥΙΟΙ Ο.Ε., Αθήνα, [ISBN: 978-960-418-358-6] Herbert Schildt 2005, C++ Βήμα προς Βήμα (2η έκδοση), Α. ΤΖΙΟΛΑ & ΥΙΟΙ Ο.Ε., Αθήνα, [ISBN: 960-512-449-1] Harvey M.Deitel, Paul J. Deitel, 2011, C++ Προγραμματισμός (6η έκδοση), Γκιούρδας Μ., Αθήνα, [ISBN: 978-960-512-5912] Jesse Liberty 2006, Πλήρες Εγχειρίδιο της C++ (Πέμπτη έκδοση), Γκιούρδας Μ., Αθήνα, [ISBN: 978-960-512-318-5] Deitel Paul J.,Deitel Harvey M., Java Προγραμματισμός, 8 η έκδοση, Εκδόσεις Χ. Γκιούρδα και ΣΙΑ, 2008, ISBN: 978-960-512-592-9. Savitch Walter, Java, 4 η έκδοση, 2007, Εκδόσεις Α. Τζιόλα και Υιοί, ISBN: 978-960-418-147-6. 10
Τέλος Ενότητας
Σημείωμα Αδειοδότησης Το παρόν υλικό διατίθεται με τους όρους της άδειας χρήσης Creative Commons Αναφορά, Μη Εμπορική Χρήση Παρόμοια Διανομή 4.0 [1] ή μεταγενέστερη, Διεθνής Έκδοση. Εξαιρούνται τα αυτοτελή έργα τρίτων π.χ. φωτογραφίες, διαγράμματα κ.λ.π., τα οποία εμπεριέχονται σε αυτό και τα οποία αναφέρονται μαζί με τους όρους χρήσης τους στο «Σημείωμα Χρήσης Έργων Τρίτων». [1] http://creativecommons.org/licenses/by-nc-sa/4.0/ Ως Μη Εμπορική ορίζεται η χρήση: που δεν περιλαμβάνει άμεσο ή έμμεσο οικονομικό όφελος από την χρήση του έργου, για το διανομέα του έργου και αδειοδόχο. που δεν περιλαμβάνει οικονομική συναλλαγή ως προϋπόθεση για τη χρήση ή πρόσβαση στο έργο. που δεν προσπορίζει στο διανομέα του έργου και αδειοδόχο έμμεσο οικονομικό όφελος (π.χ. διαφημίσεις) από την προβολή του έργου σε διαδικτυακό τόπο. Ο δικαιούχος μπορεί να παρέχει στον αδειοδόχο ξεχωριστή άδεια να χρησιμοποιεί το έργο για εμπορική χρήση, εφόσον αυτό του ζητηθεί. 12
Διατήρηση Σημειωμάτων Οποιαδήποτε αναπαραγωγή ή διασκευή του υλικού θα πρέπει να συμπεριλαμβάνει: το Σημείωμα Αναφοράς. το Σημείωμα Αδειοδότησης. τη δήλωση Διατήρησης Σημειωμάτων. το Σημείωμα Χρήσης Έργων Τρίτων (εφόσον υπάρχει). μαζί με τους συνοδευόμενους υπερσυνδέσμους. 13