ΠΛΗΡΟΦΟΡΙΚΗ ΤΕΧΝΟΛΟΓΙΑ ΚΑΙ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Κ.ΑΛΑΦΟΔΗΜΟΣ καθηγητής Δ.Παπαχρήστος μέλος ΕΔΙΠ ΑΕΙ ΠΕΙΡΑΙΑ ΤΤ ΠΑΝΕΠΙΣΤΗΜΙΟ Α ΙΓΑIΟΥ & ΑΕΙ ΠΕΙΡΑΙΑ Τ.Τ.

Slides:



Advertisements
Παρόμοιες παρουσιάσεις
Από τη C στη C++ Hy240b project 2014 Phase 1.
Advertisements

Κληρονομικότητα. Εισαγωγή  Κληρονομικότητα (Inheritance) καλείται ο μηχανισμός με τον οποίο μία νέα κλάση που ονομάζεται παράγωγη (derived class) δημιουργείται.
Κεφάλαιο Τμηματικός προγραμματισμός
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ ΤΜΗΜΑΤΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Αναφορές Αντικείμενα ως ορίσματα.
Κεφάλαιο 6 Threads. 2 Στον παραδοσιακό προγραμματισμό όταν ένα πρόγραμμα εκτελείται ονομάζεται process (διεργασία) και οι εντολές του εκτελούνται σειριακά.
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Πίνακες Κλάσεις και Αντικείμενα.
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Στατικές μέθοδοι και μεταβλητές Εσωτερικές κλάσεις.
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Σύνθεση αντικειμένων Παράδειγμα: Τμήμα πανεπιστημίου.
Η ΓΛΩΣΣΑ C ΜΑΘΗΜΑ 2.
1 Ολυμπιάδα Πληροφορικής Μάθημα 7. 2 Στόχοι μαθήματος Δημιουργία συναρτήσεων από το χρήστη Δομή προγράμματος με συναρτήσεις Συναρτήσεις και παράμετροι.
ΣΥΝΑΡΤΗΣΕΙΣ.
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Εισαγωγή στη Java II.
Κεφάλαιο 6: Εισαγωγή στον προγραμματισμό Φυσικές και τεχνητές γλώσσες.
Ενότητα Α.4. Δομημένος Προγραμματισμός
Επικοινωνία Ανθρώπου Μηχανής HTML CGI JAVASCRIPT Κουμπούλης Χρήστος Α.Μ. 921 Χαλαβαζής Βασίλης Α.Μ. 988.
Ποιότητα Λογισμικού Ενότητα 2: Παραμετρικοί έλεγχοι στο JUnit. Διδάσκων: Γεώργιος Κακαρόντζας, Καθηγητής Εφαρμογών. Τμήμα Μηχανικών Πληροφορικής, Τεχνολογικής.
ΑΝΑΚΕΦΑΛΑΙΩΣΗ 26 Οκτωβρίου Αντικειμενοστρεφής Προγραμματισμός Ένα νέο προγραμματιστικό μοντέλο (paradigm) το οποίο στηρίζεται στις κλάσεις και τα.
1 Τμήμα Μηχανικών Ηλεκτρονικών Υπολογιστών και Πληροφορικής Πανεπιστήμιο Πατρών ΟΝΤΟΚΕΝΤΡΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΙΙ (C++) Τάξεις και Αφαίρεση Δεδομένων.
Applets Εκμεταλλεύονται τo γραφικό υπόβαθρο που παρέχουν οι browsers, έχοντας έτσι τη δυνατότητα προβολής γραφικών και τη δυνατότητα υλοποίησης ενός γραφικού.
Κεφάλαιο 10 – Υποπρογράμματα
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Copy Constructor Deep and Shallow Copies.
Τμήμα Πληροφορικής και Τηλεπικοινωνιών
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Κλάσεις και Αντικείμενα Αναφορές.
1 Τμήμα Μηχανικών Ηλεκτρονικών Υπολογιστών και Πληροφορικής Πανεπιστήμιο Πατρών ΟΝΤΟΚΕΝΤΡΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΙΙ (C++) Τάξεις και Αφαίρεση Δεδομένων.
Applets Εκτελούνται από τον appletviewer και από Java enabled web browsers Εκμεταλλεύονται τo γραφικό υπόβαθρο που παρέχουν οι browsers, έχοντας έτσι τη.
ΗΥ-340 Γλώσσες και Μεταφραστές Φροντιστήριο Syntax Directed Translation and alpha Language.
Τεχνολογικό Εκπαιδευτικό Ίδρυμα Θεσσαλίας Αντικειμενοστραφής Προγραμματισμός Ι Ενότητα 9: Κληρονομικότητα. Διδάσκων: Νικόλαος Θ Λιόλιος, Καθηγητής. Τμήμα.
Βασικά στοιχεία της Java
ΗΥ150 – ΠρογραμματισμόςΚώστας Παναγιωτάκης ΗΥ-150 Προγραμματισμός Συναρτήσεις (μέρος δεύτερο) και Μεταβλητές.
Τεχνολογικό Εκπαιδευτικό Ίδρυμα Θεσσαλίας Αντικειμενοστραφής Προγραμματισμός Ι Ενότητα 6: Πίνακες και Παράμετροι στην main. Διδάσκων: Νικόλαος Θ Λιόλιος,
ΚΕΦΑΛΑΙΟ Το αλφάβητο της ΓΛΩΣΣΑΣ
Τεχνολογικό Εκπαιδευτικό Ίδρυμα Θεσσαλίας Αντικειμενοστραφής Προγραμματισμός Ι Ενότητα 8: Κατασκευαστές. Διδάσκων: Νικόλαος Θ Λιόλιος, Καθηγητής. Τμήμα.
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Κλάσεις και Αντικείμενα.
Αντικειμενοστραφής Προγραμματισμός Ι
Υλοποίηση εφαρμογών σε προγραμματιστικά περιβάλλοντα Κεφάλαιο 7.
Εισαγωγή στη C# Μαρίνος Θεμιστοκλέους Ανδρούτσου 150 Γραφείο 206 Τηλ Ώρες Γραφείου: Τετάρτη 5-6 μμ.
ΥΠΟΛΟΓΙΣΤΙΚΕΣ ΤΕΧΝΙΚΕΣ ΓΙΑ ΣΥΣΤΗΜΑΤΑ ΜΕΤΑΔΟΣΗΣ ΠΛΗΡΟΦΟΡΙΑΣ Αντικειμενοστραφής προγραμματισμός Web Site: ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ.
Διαγράμματα Πακέτων (Package Diagrams)
Αντικειμενοστραφής Προγραμματισμός ΙΙ
Αρχεσ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Η/Υ ΤΑξη Β΄
Βασικές ένοιες Αντικειμενοστραφούς Προγραμματισμού
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
ΠΛΗΡΟΦΟΡΙΚΗ ΤΕΧΝΟΛΟΓΙΑ ΚΑΙ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ
Κλάσεις και αντικείμενα
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
ΠΛΗΡΟΦΟΡΙΚΗ ΤΕΧΝΟΛΟΓΙΑ ΚΑΙ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ
ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
Αρχεσ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Η/Υ ΤΑξη Β΄
Αρχεσ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Η/Υ ΤΑξη Β΄
Τεχνολογία και Προγραμματισμός Υπολογιστών
Εισαγωγή στις Αρχές της Επιστήμης των Η/Υ
Εισαγωγή στον Προγ/μό Υπολογιστών
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
Ειδικά Θέματα στον προγραμματισμό Υπολογιστών
Εισαγωγή στον Προγραμματισμό με Python, ΑΠΘ ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ Εισαγωγή στον Προγραμματισμό με Python Εβδομάδα 1: Βασικά στοιχεία.
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
ΥΛΟΠΟΙΗΣΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΑ ΠΕΡΙΒΑΛΛΟΝΤΑ
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
Εισαγωγή στον Προγραμματισμό (στη γλώσσα Java)
Εισαγωγή στον Αντικειμενοστρεφή Προγραμματισμό (στη γλώσσα Java)
UNIT 1 Τα Πρώτα Προγράμματα.
Μεταγράφημα παρουσίασης:

ΠΛΗΡΟΦΟΡΙΚΗ ΤΕΧΝΟΛΟΓΙΑ ΚΑΙ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Κ.ΑΛΑΦΟΔΗΜΟΣ καθηγητής Δ.Παπαχρήστος μέλος ΕΔΙΠ ΑΕΙ ΠΕΙΡΑΙΑ ΤΤ ΠΑΝΕΠΙΣΤΗΜΙΟ Α ΙΓΑIΟΥ & ΑΕΙ ΠΕΙΡΑΙΑ Τ.Τ. Τμήματα Ναυτιλίας και Επιχειρηματικών Υπηρεσιών & Μηχ. Αυτοματισμού ΤΕ 7 η Διάλεξη

Σκοπός Διάλεξης η παράθεση βασικών εννοιών & ορισμών τoυ Αντικειμενοστραφή Προγραμματισμού

Αντικειμενοστραφής Προγραμματισμός Δομημένος Προγραμματισμός Ο δομημένος προγραμματισμός (structured programming) βασίζεται στην οργάνωση του προγράμματος σε μικρές, αυτόνομα κατανοητές, οντότητες Για να επιτευχθεί αυτό κάθε οντότητα έχει ένα σημείο εισόδου και ένα σημείο εξόδου Η δομή του προγράμματος βασίζεται σε τρεις μόνο λογικές δομές: – ακολουθία (sequence) – επιλογή (condition) – επανάληψη (repetition) Με τη χρήση των παραπάνω δομών μπορεί να εκφραστεί οποιοσδήποτε αλγόριθμος Σε περιπτώσεις που η σχολαστική τήρηση των παραπάνω κάνει το πρόγραμμα δυσανάγνωστο πρέπει οι εξαιρέσεις να κωδικοποιούνται δομημένα, τεκμηριωμένα, με οικονομία στη χρήση τους, και με τάξη

Αντικειμενοστραφής Προγραμματισμός

Μειονεκτήματα (-) Η πολυπλοκότητα Τα δεδομένα έχουν υποεκτιμηθεί Η τοπικότητα των μεταβλητών Υπάρχουν οι καθολικές αλλά τότε αυξάνει η πολ υπλοκότητα Αυξημένη πιθανότητα λάθους Αυξημένη πολυπλοκότητα και στη διαχείριση των δεδομένων Η δημιουργία νέων τύπων δεδομένων είναι δύσ κολη

Αντικειμενοστραφής Προγραμματισμός Αντικειμενοστρεφής Προγραμματισμός, ΑΠ (object oriented programming, ΟΟΡ) Αντικειμενοστρεφής Προγραμματισμός, ΑΠ (object oriented programming, ΟΟΡ) προγραμματιστική τεχνική έμφαση στη δημιουργία μονάδων οι οποίες θα περιλαμβάνουν τα δεδομένα αλλά και τις εντολές που τα διαχειρίζονται βασίζεται στα αντικείμενα (object) και στις αλληλεπιδράσεις μεταξύ τους

Αντικειμενοστραφής Προγραμματισμός Ο κόσμος αποτελείται από αντικείμενα απλά ή σύνθε τα, που αλληλεπιδρούν μεταξύ τους που αλληλεπιδρούν μεταξύ τους Για κάθε αντικείμενο του φυσικού κόσμου μπορούμε να ορίσουμε, μια αφηρημένη έννοια που περιγράφει: τον τρόπο με τον οποίο το αντικείμενο επικοινωνεί μετο περιβάλλον του - τον τρόπο με τον οποίο το αντικείμενο επικοινωνεί μετο περιβάλλον του - το πώς αυτό είναι οργανωμένο εσωτερικά στιγμιότυπα (instances) κλάσεις (classes) ο ΑΠ ονομάζει στιγμιότυπα (instances) τα πραγματικά αντικείμενα και κλάσεις (classes) τις αφηρημένες έννο ιες που τα περιγράφουν.

Αντικειμενοστραφής Προγραμματισμός Κλάσειςαντικείμενα Κλάσεις κα αντικείμενα είναι οι δύο κύριες πτυχές του αντικειμενοστραφή προγραμματισμού τύπο, στιγμιότυπα Η κλάση δημιουργεί ένα νέο τύπο, όπου τα αντικείμενα είναι στιγμιότυπα της κλάσης Κλάση: Προγραμματιστής Η/Υ Στιγμιότυπο: Δ.Παπαχρήστος Κλάση: Γλώσσα Προγραμματισμού Στιγμιότυπο: Python

Αντικειμενοστραφής Προγραμματισμός Κλάσεις Κλάσεις Αντικείμενα ή στιγμιότυπα Αντικείμενα ή στιγμιότυπα

Αντικειμενοστραφής Προγραμματισμός μηχανισμούς Διαθέτει μηχανισμούς: απόκρυψης πληροφορίας περάσματος μηνυμάτων δημιουργίας και καταστροφής στιγμιοτύπων αναπαράστασης ιεραρχίας κληρονομικότητας

Αντικειμενοστραφής Προγραμματισμός Οι μηχανισμοί αυτοί βελτιώνουν την ποιότητα του λογισμικού ως προς τα χαρακτηριστικά του: επαναχρησιμοποίηση (reusability) επαναχρησιμοποίηση (reusability) επεκτασιμότητα (extendibility) επεκτασιμότητα (extendibility) ορθότητα (correctness) ορθότητα (correctness) ευρωστία (robustness) ευρωστία (robustness) συντηρησιμότητα (maintainability) συντηρησιμότητα (maintainability)

Αντικειμενοστραφής Προγραμματισμός Βασικά χαρακτηριστικά ΑΠ Βασικά χαρακτηριστικά ΑΠ

Αντικειμενοστραφής Προγραμματισμός Κλάση στην Python: H κλάση card() αφορά «θεωρητικά» μια τράπουλα: Τα c1 & c2 είναι μεταβλητές που παίρνουν ως τιμή αυτό που επιστρέφει η card() Η card() είναι μια «μηχανή» που φτιάχνει τραπουλόχαρτα

Αντικειμενοστραφής Προγραμματισμός Για να αποκτήσουν τα τραπουλόχαρτα τιμή – αξία πρέπει να γραφτεί πάνω τους μέσω dot notation ορίζοντας χαρακτηριστικά (ιδιότητες) και τιμές: c1 c1: 5 καρώ (d=diamond), κόκκινο (R=red) όχι φιγούρα (c1.fig=False) c2 c2: 5 ρήγας (K=King), σπαθί (c=club) μαύρο (B- black) & φιγούρα (c2.fig=True)

Αντικειμενοστραφής Προγραμματισμός Πλέον μπορεί να χρησιμοποιηθούν αυτές οι τιμές: τραπουλομηχανής Πρόγραμμα «τραπουλομηχανής» όπου κάνουμε χρήση συνάρτησης (def) όπου δέχεται τις δύο παραμέτρους (value, symbol) και υπολογίζει τις άλλες δύο (color, fig):

Αντικειμενοστραφής Προγραμματισμός Όνομα συνάρτησης: _init_ (ειδικές συναρτήσεις) Καθορίζει πως θα συμπεριφέρονται τα αντικείμενα που θα δημιουργεί η κλάση Ορίζει επακριβώς τι γίνεται μόλις δημιουργηθεί ένα αντικείμενο Η ονομασία “self” χρησιμοποιείται γιατί δεν γνωρίζει πως θα ονομασθεί το αντικείμενο (c1 ή c2) Συνεπώς : c1=card(‘5’,’d’) -> self=c1, val=‘5’, sym = ‘d c1=card(‘5’,’d’) -> self=c1, val=‘5’, sym = ‘d ’

Αντικειμενοστραφής Προγραμματισμός στη συνέχεια θα εκτελεστούν οι 2 πρώτες εντολές της συνάρτησης _init_ : και θα δοθούν τιμές στην c1.value & c1.symbol έτσι στις επόμενες εντολές υπολογίζονται οι τμές των c1.color & c1.fig: η κλάση card() δεν περιλαμβάνει τις παραμέτρους κατά τον ορισμό της κλάσης γιατί χρησιμοποιείται για άλλο σκοπό δηλ. να ορίσει κληρονομικότητα από άλλες κλάσεις

Αντικειμενοστραφής Προγραμματισμός Μπορούμε να τυπώνουμε τις τμές όλων των ιδιοτήτων των αντικειμένων που ορίζουμε: Αν τυπώσουμε το ίδιο το αντικείμενο, παίρνουμε μόνο αναφορές στις διευθύνσεις μνήμης σην οποία βρίσκονται:

Αντικειμενοστραφής Προγραμματισμός κουτί Κάθε αντικείμενο μπορούμε να το φανταστούμε σαν ένα κουτί που περιέχει τιμές για διάφορες ιδιότητες, ενδεχομένως συναρτήσεις/μεθόδους, ακόμα και άλλα αντικείμενα/κουτιά

Αντικειμενοστραφής Προγραμματισμός Η __str__ δεν χρειάζεται άλλη παράμετρο παρά μόνο το αντικείμενο (self) πάντα επιστρέφει ένα αλφαριθμητικό (string) self.value+self.symbol Εδώ επιστρέφει το self.value+self.symbol Συνεπώς μπορούμε πλέον να δώσουμε:

Αντικειμενοστραφής Προγραμματισμός εκτός από τις ειδικές συναρτήσεις μπορούμε να προσθέσουμε μέσα στην κλάση δικές μας συναρτήσεις οι οποίες θα καλούνται ως μέθοδοι με dot notation:

Αντικειμενοστραφής Προγραμματισμός Δημιουργία νέας κλάσης που θα δημιουργεί πλήρεις τράπουλες με όλα τα τραπουλόχαρτα Μια κλάση μπορεί να καλέσει αντικείμενα άλλης κλάσης

Αντικειμενοστραφής Προγραμματισμός 4 μεταβλητές μέσα στην κλάση deck αλλά έξω από τις μεθόδους (για να τις προσπελάσει μια μέθοδος θα πρέπει να τις καλέσει με dot notation από το αντικείμενο self, πχ. self.values) Η values περιέχει σε ένα αλφαριθμητικό όλες (13) τις πιθανές αξίες ενός τραπουλόχαρτου στην __init__συνδυάζουμε τις 13 αξίες με τα 4 σύμβολα για να φτιάξουμε όλα τα 13x4=52 τραπουλόχαρτα τα αποθηκεύουμε σε μία λίστα (content) που γεμίζει από την __init__ η λίστα pile χρησιμοποιείται ως μνήμη για να «θυμάται» η τράπουλα ποιά φύλλα έχει μοιράσει (δεν είναι απαραίτητη, όμως διευκολύνει όταν τελειώσει ένα παιχνίδι και θα πρέπει να ξανασυγκεντρωθούν όλα τα χαρτιά στην τράπουλα για να αρχίσει το επόμενο η μέθοδος collect() μαζεύει τα τραπουλόχαρτα από την pile

Αντικειμενοστραφής Προγραμματισμός Η __init__ έχει μόνο ένα όρισμα, το self για να δημιουργήσουμε μια τράπουλα δεν δίνουμε καμμία παράμετρο στην deck: >>> d=deck() Το πρώτο for περνάει από όλα τα σύμβολα, το δεύτερο από όλες τις αξίες, και η c=card(v,s) δημιουργεί ένα τραπουλόχαρτο το οποίο μπαίνει στο τέλος της content με την κλήση self.content.append(c) Όταν τελειώσουν οι δύο for όλα τα τραπουλόχαρτα θα είναι με τη σειρά στη λίστα content τον τρόπο εκτύπωσης καθορίζει η __str__:

Αντικειμενοστραφής Προγραμματισμός Ανακάτεμα τράπουλας Ανακάτεμα τράπουλας (καλεί μια μέθοδο με όμοιο όνομα από το module random για αυτό δηλώνουμε import την random στην αρχή του κώδικα) Μοίρασμα φύλου Μοίρασμα φύλου (χρήση μεθόδου draw() που έχει προγραμματιστεί στην κλάση και όταν καλείται επιστρέφει το φύλλο που βρίσκεται πρώτο (self.content[0]) στην τράπουλα, εκτός αν είναι άδεια, οπότε επιστρέφει «empty». Το φύλλο αφαιρείται από τη λίστα content και ένα αντίγραφό του αποθηκεύεται στην pile)

Αντικειμενοστραφής Προγραμματισμός μέθοδος collect() Η μέθοδος collect() προσθέτει την pile στο τέλος της content και μετά αδειάζει την pile Με αυτόν τον τρόπο ξανασυγκεντρώνει όλα τα φύλλα της τράπουλας για να ξεκινήσει νέο παιχνίδι

Αντικειμενοστραφής Προγραμματισμός κληρονομικότητα (inheritance) βολικό μηχανισμό Η κληρονομικότητα (inheritance) παρέχει έναν βολικό μηχανισμό για την κατασκευή ομάδων συσχετισμένων αφαιρέσεων ιεραρχία τύπων Επιτρέπει στους προγραμματιστές να δημιουργούν μια ιεραρχία τύπων στην οποία κάθε τύπος κληρονομεί ιδιότητες από τους τύπους που βρίσκονται ψηλότερα από αυτόν στην ιεραρχία

Αντικειμενοστραφής Προγραμματισμός Person TEI Person Student Undergr graduat

Αντικειμενοστραφής Προγραμματισμός TEIPerson class TEIPerson (Person): nextIdNum = 0 # αναγνωριστικός αριθμός def __init__(self,name): Person.__init__(self,name) TEIPerson self.idNum = TEIPerson.nextIdNum TEIPerson TEIPerson.nextIdNum+=1 def getIdNum(self): return self.idNum def __It__(self,other): return self.idNum < other.idNum

Αντικειμενοστραφής Προγραμματισμός class Student (TEIPerson): pass class Undergr(Student): def __init__(self, name, ClassYear): TEIPerson.__init__(self, name) self.year = clasYear def getClass(self): return self.year class Graduat(Student): pass

Αντικειμενοστραφής Προγραμματισμός

Αρχή αντικατάστασης Οι υποκλάσεις επεκτείνουν την συμπεριφορά των υπερκλάσεων τους Επιτυγχάνεται με την προσθήκη νέων ιδιοτήτων ή την υποσκέλιση ιδιοτήτων που κληρονομούνται από μια υπερκλάση

Αντικειμενοστραφής Προγραμματισμός class TransferStudent(Student): def __init__(self, name, fromschool): TEIPerson.__init__(self, name) self.fromschool = fromSchool def get0ldSchool(self): return self.fromschool

Αντικειμενοστραφής Προγραμματισμός UML & OOP διάγραμμα κλάσης Το διάγραμμα κλάσης είναι ένας γράφος που περιέχει διασυνδέσεις, πακέτα, σχέσεις & στιγμιότυπα (αντικείμενα, συνδέσμους) διάγραμμα αντικειμένων Το διάγραμμα αντικειμένων είναι ένας γράφος στιγμιότυπων (αντικειμένων, τιμών δεδομένων) διαγράμματα κλάσεων (Class diagrams) Τα διαγράμματα κλάσεων (Class diagrams) βοηθούν τον εντοπισμό των κυρίαρχων εννοιών και συνεπώς την κατανόηση του πεδίου εφαρμογής (πολύ βασικό στην αρχή ενός έργου)

Αντικειμενοστραφής Προγραμματισμός UML & OOP

Αντικειμενοστραφής Προγραμματισμός UML & OOP

Αντικειμενοστραφής Προγραμματισμός UML & OOP

Αντικειμενοστραφής Προγραμματισμός UML & OOP

Αντικειμενοστραφής Προγραμματισμός UML & OOP

Αντικειμενοστραφής Προγραμματισμός UML & OOP

Αντικειμενοστραφής Προγραμματισμός UML & OOP

Σας ευχαριστώ για την προσοχή σας…