ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΗΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ. Ευάγγελος Γ. Ούτσιος Θεόδωρος Γ. Λάντζος Διάλεξη Νο6

Σχετικά έγγραφα
ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΗΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ. Ευάγγελος Γ. Ούτσιος Θεόδωρος Γ. Λάντζος Διάλεξη Νο2-Νο3

ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΗΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ. Θεόδωρος Γ. Λάντζος Διάλεξη Νο1

Οντοκεντρικός Προγραμματισμός

Σύνθεση και Κληρονομικότητα

Σύνθεση και Κληρονομικότητα

Κληρονομικότητα. Παύλος Εφραιμίδης pefraimi <at> ee.duth.gr. Java Κληρονομικότητα 1

ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΗΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

2.1 Αντικειµενοστρεφής προγραµµατισµός

Παύλος Εφραιµίδης. Java. Κληρονοµικότητα

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

Ελληνικό Ανοικτό Πανεπιστήµιο. Βασικές έννοιες αντικειµενοστρεφούς τεχνολογίας. ρ. Πάνος Φιτσιλής

ΥΠΟΛΟΓΙΣΤΙΚΕΣ ΤΕΧΝΙΚΕΣ ΓΙΑ ΣΥΣΤΗΜΑΤΑ ΜΕΤΑΔΟΣΗΣ ΠΛΗΡΟΦΟΡΙΑΣ

Μοντελοποίηση Συστημάτων. Διαγράμματα Κλάσεων ClassDiagrams

ΑΡΦΕ ΑΝΣΙΚΕΙΜΕΝΟΣΡΕΥΟΤ ΠΡΟΓΡΑΜΜΑΣΙΜΟΤ. Ιωάννης Φατζηλυγερούδης Αναπληρωτής Καθηγητής Τμήμα Μηχ/κών Η/Υ και Πληροφορικής Πανεπιστήμιο Πατρών

ΒΙΒΛΙΑ ΒΙΒΛΙΑ

ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΗΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΗΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

Εισαγωγή στον Αντικειμενοστρέφή Προγραμματισμό Διάλεξη #11

ΑΠΛΗ ΚΛΗΡΟΝΟΜΙΚΟΤΗΤΑ

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κληρονομικότητα

ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΗΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ. Ευάγγελος Γ. Ούτσιος Θεόδωρος Γ. Λάντζος Διάλεξη Νο8

Αρχές Τεχνολογίας Λογισμικού Εργαστήριο

ΑΡΧΗ 1ΗΣ ΣΕΛΙΔΑΣ Γ ΤΑΞΗΣ ΗΜΕΡΗΣΙΩΝ & Δ ΤΑΞΗΣ ΕΣΠΕΡΙΝΩΝ ΥΠΟΛΕΙΠΟΜΕΝΕΣ ΠΑΝΕΛΛΑΔΙΚΕΣ ΕΞΕΤΑΣΕΙΣ HMEΡΗΣΙΩΝ ΚΑΙ ΕΣΠΕΡΙΝΩΝ ΕΠΑΓΓΕΛΜΑΤΙΚΩΝ ΛΥΚΕΙΩΝ

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

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα. Προγραμματισμός Η/Υ. Ι. Ψαρομήλιγκος Χ. Κυτάγιας

ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΗΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ


Διαγράμματα UML στην Ανάλυση. Μέρος Β Διαγράμματα Κλάσεων Διαγράμματα Αντικειμένων

ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ ΣΥΝΟΛΟ ΣΕΛΙΔΩΝ: ΕΞΙ (6)

Εισαγωγή σε αντικειμενοστραφή concepts. Και λίγη C#

Οντοκεντρικός Προγραμματισμός

Εισαγωγή στον Προγραμματισμό με C++

Β ΠΕΡΙΦΕΡΕΙΑ ΠΕΙΡΑΙΩΣ ΠΑΣΟΚ EK. T ΖΑΧΑΡΟΠΟΥΛ ΟΣ ΠΡΟΔΡΟΜΟΣ ΜΥΡΓΙΑΛΗ ΧΡΥΣΟΥΛΑ (ΧΡΥΣΑ) ΜΑΓΙΑΤΗΣ ΙΩΑΝΝΗΣ ΧΑΤΖΗΜΑΝΩΛ ΗΣ ΕΥΑΓΓΕΛΟΣ ΔΙΑΜΑΝΤΙΔΗΣ ΙΩΑΝΝΗΣ

10. Με πόσους και ποιους τρόπους μπορεί να αναπαρασταθεί ένα πρόβλημα; 11. Περιγράψτε τα τρία στάδια αντιμετώπισης ενός προβλήματος.

ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΗΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

ΟΜΟΣΠΟΝΔΙΑ ΕΚΠΑΙΔΕΥΤΙΚΩΝ ΦΡΟΝΤΙΣΤΩΝ ΕΛΛΑΔΟΣ (Ο.Ε.Φ.Ε.) ΕΠΑΝΑΛΗΠΤΙΚΑ ΘΕΜΑΤΑ ΕΠΑΝΑΛΗΠΤΙΚΑ ΘΕΜΑΤΑ 2019 Β ΦΑΣΗ

Διάλεξη 08: Αντιστοίχηση Εννοιολογικού σε Σχεσιακό Μοντέλο (ER/EER to Relational) Διδάσκων: Παναγιώτης Ανδρέου

ΕΞΕΤΑΣΤΕΑ ΥΛΗ (SYLLABUS) ADVANCED αντικειμενοστραφής προγραμματισμός ΕΚΔΟΣΗ 1.0. Σόλωνος 108,Τηλ Φαξ

. Μεθοδολογία Προγραμματισμού. Abstract Κλάσεις και Interfaces. Νικόλαος Πεταλίδης. Εισαγωγή Εαρινό Εξάμηνο 2014

Πληροφοριακά Συστήματα Διοίκησης Ενότητα 5: Διαγράμματα Κλάσης (1ο Μέρος)

ΚΛΗΡΟΝΟΜΙΚΟΤΗΤΑ. Σχηματική παράσταση του προγράμματος. logariasmos

Ανάπτυξη Εφαρμογής για τη Συστηματική Ταξινόμηση των Ιχθύων με Χρήση Γραμμωτού Κώδικα

Το πρόγραμμα HelloWorld.java. HelloWorld. Κλάσεις και Αντικείμενα (2) Ορισμός μιας Κλάσης (1) Παύλος Εφραιμίδης pefraimi <at> ee.duth.

Αντικειμενοστρέφεια. Henri Matisse, Harmony in Red, Κωστής Σαγώνας Νίκος Παπασπύρου

Οντοκεντρικός Προγραμματισμός ΦΡΟΝΤΙΣΤΗΡΙΟ JAVA

ΠΕΡΙΓΡΑΜΜΑ ΜΑΘΗΜΑΤΟΣ

Προγραμματισμός I (Θ)

Σχεδίαση-Ανάπτυξη Εφαρμογών Πληροφορικής - Εβδομάδα 1

Εφαρμογές της Λογικής στην Πληροφορική

08 Η γλώσσα UML I. Τεχνολογία Λογισμικού. Σχολή Hλεκτρολόγων Mηχανικών & Mηχανικών Yπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο. Χειμερινό εξάμηνο

ΤΕΛΙΚΟ ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ

Τεχνολογία Λογισμικού

Διαγράμματα Κλάσεων στη Σχεδίαση

Βάσεις Δεδομένων Ι. 4 ο Φροντιστήριο. Πέρδικα Πολίνα [perdika]

ΣΥΣΧΕΤΙΣΕΙΣ ΚΛΑΣΕΩΝ (Class relationships)

ΚΕΦΑΛΑΙΟ 10 ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ

Οντοκεντρικός Προγραμματισμός ΦΡΟΝΤΙΣΤΗΡΙΟ JAVA

Όνομα(τα): Όνομα(τα): Όνομα Η/Υ: Τμήμα: Ημερομηνία: Δομή Επιλογής

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ Π ΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ Π ΕΡΙΒΑΛΛΟΝ

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κληρονομικότητα

Τμήμα Πληροφορικής & Επικοινωνιών Δρ. Θεόδωρος Γ. Λάντζος lantzos@teiser.gr

ΚΟΡΥΦΑΙΟ ΦΡΟΝΤΙΣΤΗΡΙΟ korifeo.gr Μάθημα :Προγραμματισμός Εξεταζόμενη ύλη : 2o, 3o,4o,5o κεφάλαιο ΘΕΜΑ 1 ο

Σου προτείνω να τυπώσεις τις επόμενες τέσσερις σελίδες σε ένα φύλο διπλής όψης και να τις έχεις μαζί σου για εύκολη αναφορά.

Γενικά Στοιχεία Ηλεκτρονικού Υπολογιστή

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ

Η Γλώσσα Προγραµµατισµού C++ (The C++ Programming Language)

ΣΧΟΛΗ ΔΙΟΙΚΗΣΗΣ ΚΑΙ ΟΙΚΟΝΟΜΙΑΣ ΤΜΗΜΑ ΔΙΟΙΚΗΣΗ ΕΠΙΧΕΙΡΗΣΕΩΝ ΕΠΙΠΕΔΟ ΣΠΟΥΔΩΝ Προπτυχιακό ΚΩΔΙΚΟΣ ΜΑΘΗΜΑΤΟΣ GD2520

Ανάπτυξη και Σχεδίαση Λογισμικού

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ ΠΡΟΣΟΜΟΙΩΣΗΣ ΠΑΝΕΛΛΑΔΙΚΩΝ ΣΧΟΛΙΚΟΥ ΕΤΟΥΣ

Κεφάλαιο ΙII : Εργαστηριακές ασκήσεις που αφορούν εντολές ελέγχου της ροής ενός προγράµµατος.

Αντικειμενοστρεφής Προγραμματισμός Διάλεξη 4 : CLASSES

Εισαγωγή στον Αντικειμενοστρέφή Προγραμματισμό Διάλεξη #12

Περιεχόμενο του μαθήματος

Πρόβλημα 37 / σελίδα 207

FORTRAN & Αντικειμενοστραφής Προγραμματισμός ΣΝΜΜ 2017

Αντικειμενοστρεφής Προγραμματισμός Ενότητα 3: Constructors και destructors

(Απλή) Κληρονομικότητα

J-GANNO. Σύντοµη αναφορά στους κύριους στόχους σχεδίασης και τα βασικά χαρακτηριστικά του πακέτου (προέκδοση 0.9Β, Φεβ.1998) Χάρης Γεωργίου

Περιεχόμενα ΜΕΡΟΣ ΠΡΩΤΟ. Πρόλογος... 13

Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον Λύσεις Θεμάτων Εξετάσεων Ενιαίου Λυκείου 2004

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ & ΥΠΟΛΟΓΙΣΤΙΚΗ ΦΥΣΙΚΗ

Γενικά (για τις γραπτές εξετάσεις)

Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ

FORTRAN & Αντικειμενοστραφής Προγραμματισμός ΣΝΜΜ 2017

Τι είναι; Ο Πίνακας Συμβόλων είναι όπως ένα λεξικό:

Με τι ασχολείται ο αντικειμενοστραφής προγραμματισμός

Αντικειμενοστρεφής Προγραμματισμός Ενότητα 5: Κληρονομικότητα. Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΣΠΟΥΔΩΝ ΟΙΚΟΝΟΜΙΑΣ ΚΑΙ ΠΛΗΡΟΦΟΡΙΚΗΣ

Γ τάξη Τεχνολογικής Κατεύθυνσης Ενιαίου Λυκείου ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ. ΔΟΜΗ ΕΠΙΛΟΓΗΣ Διδάσκων: ΔΟΥΡΒΑΣ ΙΩΑΝΝΗΣ

Ανάπτυξη και Σχεδίαση Λογισμικού

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΑΘΗΜΑ 3 Ο. Σταθερές-Παράμετροι-Μεταβλητές Αριθμητικοί & Λογικοί Τελεστές Δομή ελέγχου-επιλογής Σύνθετοι έλεγχοι

Η Γλώσσα Προγραµµατισµού C++ (The C++ Programming Language) Ιστοσελίδα του µαθήµατος. Περιεχόµενα. ηµήτριος Κατσαρός, Ph.D.

Ειδικά Θέματα Προγραμματισμού

ÔÏÕËÁ ÓÁÑÑÇ ÊÏÌÏÔÇÍÇ

HelloWorld. Παύλος Εφραιμίδης. Java Το πρόγραμμα HelloWorld 1

ΠΟΛΥΜΟΡΦΙΣΜΟΣ. 4.1 Κληρονομικότητα και Αρχή της Υποκατάστασης

Τεχνολογία Λογισμικού. Ενότητα 1: Εισαγωγή στην UML Καθηγητής Εφαρμογών Ηλίας Γουνόπουλος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

Οντοκεντρικός Προγραμματισμός

Προγραμματισμός Ι. Κλάσεις και Αντικείμενα. Δημήτρης Μιχαήλ. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

Transcript:

ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΗΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Ευάγγελος Γ. Ούτσιος Θεόδωρος Γ. Λάντζος Διάλεξη Νο6 1

Κληρονομικότητα Η δυνατότητα μοιράσματος ομοιοτήτων ανάμεσα σε κλάσεις ενώ δεσμεύονται οι διαφορές τους Κληρονομικότητα (Inheritance), Γενίκευση (Generalization), Ειδίκευση (Specialization) όροι ταυτόσημοι και αναφέρονται στην ίδια ιδιότητα Κληρονομικότητα είναι η σχέση ανάμεσα σε μια κλάση και σε μία ή περισσότερες εκδόσεις αυτής Δύο σχέσεις υπάρχουν στην κληρονομικότητα α. η υπέρκλάση (superclass) και β. η υπό κλάση (subclass) Υπέρ κλάση καλείται η κλάση η οποία ραφινάρετε και υπό κλάση καλείται η κάθε ειδίκευση της ραφιναρισμένης κλάσης Η κληρονομικότητα δεν είναι στατική σχέση Η κληρονομικότητα έχει μεταβατικότητα σε κάθε επίπεδο 2

Κληρονομικότητα Η κληρονομικότητα εισάγει δύο έννοιες του πρόγονου και του απογόνου οι οποίες αναφέρονται στην ειδίκευση της κλάσης σε πολλαπλά επίπεδα Μια στιγμή μιας υπό κλάσης είναι ταυτόχρονα και μια στιγμή από όλες τις κλάσεις προγόνου Η κάθε στιγμή μιας κλάσης περιλαμβάνει τιμές για κάθε χαρακτηριστικό της κάθε κλάσης προγόνου Καθώς και κάθε λειτουργία της κλάσης προγόνου μπορεί να εφαρμοστεί από κάθε στιγμή της κλάσης. Ουσιαστικά, η δυνατότητα χρήσης των λειτουργιών από τις κλάσεις προγόνου. 3

Κληρονομικότητα Ταυτόσημη με την επαναχρησιμοποίηση κώδικα Ομαδοποίηση κοινών κλάσεων για επαναχρησιμοποίηση κοινών χαρακτηριστικών και λειτουργιών Το πιο σημαντικό πλεονέκτημα της κληρονομικότητας είναι η λογική απλούστευση η οποία μειώνει τον αριθμό των ανεξάρτητων χαρακτηριστικών μέσα σ ένα σύστημα 4

Υλοποίηση κληρονομικότητας στη C Δημιουργία Αντικειμένου α1 με συνάρτηση Εγκατάστασης από την βασική κλάση Κληρονομικότητα Αναζήτηση στην βασική κλάση Όχι ανάστροφα 5

Παράγωγες Κλάσεις και συναρτήσεις εγκατάστασης Όταν θέλουμε να δώσουμε αρχικές τιμές σε παράγωγες κλάσεις θα πρέπει να γράψουμε συναρτήσεις εγκατάστασης για την παράγωγη κλάση οι οποίες θα Καλούν τις συναρτήσεις εγκατάστασης της βασικής κλάσης 6

Κληρονομικότητα και συναρτήσεις μελών Στις παράγωγες κλάσεις μπορούμε να γράψουμε συναρτήσεις μέλη που έχουν το Ίδιο όνομα με κάποιες συναρτήσεις από της βασικής κλάσης Στο παράδειγμα που ακολουθεί 7.3 θέλουμε να έχουμε συναρτήσεις ανάληψης Και κατάθεσης οι οποίες να εξετάζουν την περίπτωση αρνητικής κίνησης. Αυτό Υλοποιείται με υπερφόρτωση των ίδιων συναρτήσεων στην παράγωγη κλάση 7

Προσπελασιμότητα 8

Συνδυασμοί προσπέλασης Αντικείμενα της παράγωγης κλάσης μπορούν να προσπελάσουν δημόσια δεδομένα της βασικής κλάσης, μόνον εφόσον η κλάση παράγεται δημόσια Αντικείμενα παράγωγης κλάσης που παράγεται ιδιωτικά δεν μπορούν να προσπελάσουν ούτε δημόσια δεδομένα της βασικής κλάσης Αν δεν δώσουμε κάποιο καθοριστή προσπέλασης όταν δημιουργούμε μια κλάση υποτίθεται ότι είναι ιδιωτικός (private) 9

Περιεκτικότητα (Aggregation) Η περιεκτικότητα είναι μια μορφή σχέσης στον ΟΟ προγραμματισμό με βάση την οποία ένα αντικείμενο συν αποτελείται από άλλα επιμέρους αντικείμενα (components) Εντοπίζετε στο σχεδιασμό με την χρήση των εκφράσεων είναι μέρος από; ή φτιάχνετε από Τα αντικείμενα components μπορούν να αποτελούν μέρος πολλών σχέσεων περιεκτικότητας Η περιεκτικότητα είναι μεταβατική, δηλαδή ένα αντικείμενο αποτελείται από άλλα αντικείμενα components, τα οποία με την σειρά τους μπορούν να είναι και αυτά συν αποτελούμενα από άλλα 10 αντικείμενα

Περιεκτικότητα και Σχέσεις Εταιρεία Τομέας Τμήμα Εργάζεται Εργαζόμενος 11

Περιεκτικότητα και Κληρονομικότητα Λαμπτήρας Βάση Κάλυμμα Διακόπτης Καλώδιο Φθορίου Πυράκτωση Θήκη Ερμα Περιστροφική Θήκη Εκκινητή 12

Αναδρομική Περιεκτικότητα Πρόγραμμα Μπλόκ Σύνθετες Εντολές Απλές Εντολές 13

14