Κελυφοποιημένα δεδομένα [encapsulated data]

Slides:



Advertisements
Παρόμοιες παρουσιάσεις
Συλλογές, Στοίβες και Ουρές Σε πολλές εφαρμογές μας αρκεί η αναπαράσταση ενός δυναμικού συνόλου με μια δομή δεδομένων η οποία δεν υποστηρίζει την αναζήτηση.
Advertisements

ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
Εισαγωγή στον Προγραμματισμό, Αντώνιος Συμβώνης, ΣΕΜΦΕ, ΕΜΠ, Slide 1 Εβδομάδα 9: Διανύσματα και λίστες.
Σχεδίαση-Ανάπτυξη Εφαρμογών Πληροφορικής Αντώνιος Συμβώνης, ΕΜΠ, Slide 1 Εβδομάδα 2: Υπο-τύποι και πολυμορφισμός [sub-typing and polymorphism]
JAVA και SQL Δαμιανός Χατζηαντωνίου
Αντικείμενα, Κλάσεις και Μέθοδοι
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Συλλογές.
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Σύνθεση αντικειμένων Παράδειγμα: Τμήμα πανεπιστημίου.
1 Τμήμα Μηχανικών Ηλεκτρονικών Υπολογιστών και Πληροφορικής Πανεπιστήμιο Πατρών ΟΝΤΟΚΕΝΤΡΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΙΙ (C++) Κληρονομικότητα.
Δρ. Μαρία Ι. Ανδρέου Εισαγωγή στον Αντικειμενόστρεφη Προγραμματισμό (Object-Oriented Programming) OOP Concepts and Object-Oriented Design.
Σχεδίαση-Ανάπτυξη Εφαρμογών Πληροφορικής Αντώνιος Συμβώνης, ΕΜΠ, Slide 1 Σχεδίαση-Ανάπτυξη Εφαρμογών Πληροφορικής (Αντικειμενοστρεφής Προγραμματισμός)
Διερεύνηση γραφήματος. Ένας αλγόριθμος διερεύνησης γραφήματος επισκέπτεται τους κόμβους του γραφήματος με μια καθορισμένη στρατηγική, π.χ. κατά εύρος.
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Γενικευμένες κλάσεις Συλλογές.
ΚΛΗΡΟΝΟΜΙΚΟΤΗΤΑ ΠΟΛΥΜΟΡΦΙΣΜΟΣ. ΑΝΑΚΕΦΑΛΑΙΩΣΗ Θεματολόγιο Κληρονομικότητα Παράδειγμα Κληρονομικότητα – Βελτιωμένο Παράδειγμα Ενθυλάκωση : public – private.
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Copy Constructor Deep and Shallow Copies.
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Πολυμορφισμός – Αφηρημένες κλάσεις Interfaces (διεπαφές)
ΟΣΣ Δεκεμβρίου 2004 Σχεδιασμός Λογισμικού Γλώσσες Προγραμματισμού ΙΙ ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ.
Πανεπιστήμιο Κύπρου – Τμήμα Πληροφορικής ΕΠΛ446-Προχωρημένες Βάσεις Δεδομένων Ζωγραφάκης Ιωάννης.
1 Τμήμα Μηχανικών Ηλεκτρονικών Υπολογιστών και Πληροφορικής Πανεπιστήμιο Πατρών ΟΝΤΟΚΕΝΤΡΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΙΙ (C++) Τάξεις και Αφαίρεση Δεδομένων.
1 Τμήμα Μηχανικών Ηλεκτρονικών Υπολογιστών και Πληροφορικής Πανεπιστήμιο Πατρών ΟΝΤΟΚΕΝΤΡΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΙΙ (C++) Τάξεις και Αφαίρεση Δεδομένων.
ANAΛΥΣΗ ΣΥΣΤΗΜΑΤΩΝ Aντικειμενοστρεφής Ανάπτυξη Συστημάτων Εισαγωγή στη UML.
Δομές Δεδομένων 8η Διάλεξη: Ταξινόμηση Ε. Μαρκάκης.
Κεφάλαιο 23 Η ζωή στις εύκρατες περιοχές. Εύκρατες περιοχές Εύκρατες ονομάζονται οι περιοχές που βρίσκονται ανάμεσα στην τροπική ζώνη και τις πολικές.
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Εισαγωγή στη Java.
Κωδικός Θ: ΤΠ4003, Κωδικός Ε: ΤΠ4103 (ΜΕΥ/Υ) Ώρες (Θ - ΑΠ - Ε): Προαπαιτούμενα: ΤΠ2003,2103.
1 Προγραμματισμός Διαδικτύου Ενότητα 3 : Κατηγορίες και κληρονομικότητα Ιωάννης Τσούλος Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου.
Κεφάλαιο 33 Οι σχέσεις των κρατών της Ευρώπης και η Ευρωπαϊκή Ένωση.
ΤΜΗΜΑ ΔΙΟΙΚΗΣΗΣ ΣΥΣΤΗΜΑΤΩΝ ΕΦΟΔΙΑΣΜΟΥ ΑΡΧΕΣ ΛΟΓΙΣΤΙΚΗΣ ΚΑΘΗΓΗΤΗΣ: Δρ ΠΑΝΑΓΙΩΤΗΣ ΚΩΤΣΙΟΣ ΑΚΑΔΗΜΑΪΚΟ ΕΤΟΣ 2015/2016.
ΟΣΣ2 - 4 Δεκεμβρίου 2005 Σχεδιασμός Λογισμικού Γλώσσες Προγραμματισμού ΙΙ ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ.
Κεφάλαιο 28 Η χλωρίδα και η πανίδα – Η βλάστηση της Ευρώπης.
Αντικειμενοστραφής Προγραμματισμός ΙΙ
Αντικειμενοστραφής Προγραμματισμός ΙΙ
Η εκπαίδευση δεν ήταν πάντοτε όπως σήμερα ….
Διαγράμματα Κλάσεων Ανάλυση Συστημάτων 2007.
Βασικές έννοιες Αντικειμενοστραφούς Προγραμματισμού ΙΙ
Κληρονομικότητα [inheritance]
Software Engineering for Web Applications
Πίνακες και αλφαριθμητικά
Εισαγωγή στον Προγ/μό Υπολογιστών
Αντικειμενοστραφής Προγραμματισμός (Object Oriented Programming)
Βασικές έννοιες Αντικειμενοστραφούς Προγραμματισμού ΙΙ
Αντικειμενοστραφής Προγραμματισμός ΙΙ
ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
Web Services στη C# Εργαστήριο 2
Εργασίες μαθητών σχ. έτους 2015 – Ο ΕΚ Ανατολικής Αττικής
Στισ γειτονιεσ των Αστεγων
Οι κάτοικοι και τα κράτη της Αφρικής
Κεφάλαιο 22 Η ζωή στα τροπικά δάση.
«Από τη MicroWorlds Pro στην Python»
11η Διάλεξη Ταξινόμηση Quicksort και Ιδιότητες Δέντρων Ε. Μαρκάκης
Καρέκλη Ελένη Βοσινάκης Παντελής Ευαγγελακάκης Κωνσταντίνος
Η Ένταξη παιδιών με απώλεια ακοής στη γενική εκπαίδευση
JAVA – Basic OOP Principles
ΛΙΠΙΔΙΑ.
ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ
Η θέση και το φυσικό περιβάλλον της Νότιας Αμερικής
Kλυτία, η νύμφη που έγινε ηλιοτρόπιο
ΑΝΑΝΕΩΣΙΜΕΣ ΠΗΓΕΣ ΕΝΕΡΓΕΙΑΣ & ΟΙΚΟΝΟΜΙΚΗ ΑΥΤΑΡΚΕΙΑ ΤΗΣ ΠΕΡΙΟΧΗΣ
Η ζωή στις πολικές περιοχές
Επιστημονική Υπεύθυνη: Αλεξάνδρα Ανδρούσου Επόπτης: Σταύρος Σταύρου
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
Σταθερά ΚΕΣΠΕΜ Κομοτηνής Εκπαιδευτικός: Κυριακή Ζαφείράκη Επιστημονική Υπεύθυνη: Μαρία Ζωγραφάκη Επόπτρια: Μαρία Γραμματίκα Τάξη: Στ Αριθμός Παιδιών:
Wrapper Classes, Abstract Classes and Interfaces
Υπο-τύποι και πολυμορφισμός
Ομαδοποίηση αντικειμένων
Κληρονομικότητα [inheritance]
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
Inheritance and Polymorphism
Μεταγράφημα παρουσίασης:

Κελυφοποιημένα δεδομένα [encapsulated data] αντικείμενο CD αντικείμενο Video title title artist director comment comment Δεδομένα «φυλάσσονται» σε κάθε αντικείμενο

Μέθοδοι αντικείμενο CD αντικείμενο Video CD Video set... get... set... print print Μέθοδοι επενεργούν πάνω στο κάθε αντικείμενο

Κώδικας Java (CD) class CD { String title; String artist; String comment; CD(String theTitle, String theArtist) { title = theTitle; artist = theArtist; comment = “ “; } void setComment(String newComment) { … } String getComment() void print() … Κώδικας Java (CD)

Κώδικας Java (Video) class Video { String title; String director; String comment; Video(String theTitle, String theDirector) { title = theTitle; director = theDirector; comment = “ ”; } void setComment(String newComment) { … } String getComment() void print() … Κώδικας Java (Video)

Μειονεκτήματα Επανάληψη κώδικα στις κλάσεις CD και Video Επιπλέον εργασία για τροποποίηση του πηγαίου κώδικα Δυο διανύσματα και επανάληψη κώδικα στην κλάση Database

Τα πεδία των κλάσεων Item CD Video Οι υποκλάσεις [subclasses] κληρονομούν τα πεδία από τις υπερκλάσεις [superclasses]. Item title comment CD Video artist director CD: title, artist, comment Video: title, director, comment

Οι μέθοδοι των κλάσεων Item Video CD Οι υποκλάσεις κληρονομούν τις μεθόδους από τις υπερκλάσεις. Item setComment() print() ... CD Video CD() Video() getArtist() getDirector() ... ... CD: CD(), getArtist(), setComment(), print() Video: Video(), getDirector(), setComment(), print()

Προεκτάσεις Item MusicCD Video VideoGame

Επιπλέον προεκτάσεις Item MusicCD Video Game VideoGame BoardGame

Ορολογία Κλάση βάσης [base class] Υπερκλάση [superclass] Γονέας [parent] Παιδί [child] Παραγόμενη κλάση [derived class] Υποκλάση [subclass]

Πλεονεκτήματα της κληρονομικότητας Αποφυγή επανάληψης κώδικα Επαναχρησιμοποίηση κώδικα Πιο εύκολη συντήρηση κώδικα Επεκτασιμότητα [extendability]

Κώδικας Java με χρήση κληρονομικότητας class Item { ... } class MusicCD extends Item class Video extends Item

Διάγραμμα κλάσεων [Class diagram] Database Item MusicCD Video

Πηγαίος κώδικας (χρήστης [client]) void list() { for (int i = 0; i < myItems.length; i++) myItems[i].print(); }

Η κλάση “Object” Object Person Game Staff Student (Σχεδόν) κάθε κλάση έχει μία υπερ-κλάση. Εάν η υπερ-κλάση δεν έχει άμεσα δηλωθεί, τότε ως υπερκλάση θεωρείται η κλάση Object Οι μέθοδοι της κλάσης Object είναι διαθέσιμες σε κάθε κλάση Object Person Game Staff Student