Κατέβασμα παρουσίασης
Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε
1
Κληρονομικότητα [inheritance]
Διάλεξη #11: Κληρονομικότητα [inheritance]
2
Κληρονομικότητα [inheritance]
Τι είναι η κληρονομικότητα; Γιατί είναι σημαντική;
3
(Μια βάση δεδομένων με CDs και videos.)
Παράδειγμα … DoME: Database of Multimedia Entertainment (Μια βάση δεδομένων με CDs και videos.)
4
DoME: Λειτουργικότητα
Εισαγωγή δεδομένων CD: title, artist, # tracks, playing time, got-it, comment Video: title, director, playing time, got-it, comment Εκτύπωση λιστών Αναζήτηση
5
Οι κλάσεις CD Video
6
Κελυφοποιημένα δεδομένα [encapsulated data]
αντικείμενο CD αντικείμενο Video title title artist director comment comment #tracks gotIt Δεδομένα «φυλάσσονται» σε κάθε αντικείμενο
7
Μέθοδοι αντικείμενο CD αντικείμενο Video CD Video set... get... set...
print print Μέθοδοι επενεργούν πάνω στο κάθε αντικείμενο
8
Το αντικείμενο database
CDs database videos
9
Κώδικας 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) Ημιτελής (σχόλια!)
10
Κώδικας 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)
11
Κώδικας Java (Database)
class Database { CD[] myCDs; Video[] myVideos; … void print() { for(int i=0; i<myCDs.length; i++) myCDs[i].print(); } for(int i=0; i<myVideos.length; i++) myVideos[i].print(); Κώδικας Java (Database)
12
Μειονεκτήματα Επανάληψη κώδικα στις κλάσεις CD και Video
Επιπλέον εργασία για τροποποίηση του πηγαίου κώδικα Δυο διανύσματα και επανάληψη κώδικα στην κλάση Database Διάφορα άλλα (θα τα δούμε σύντομα…)
13
Η εναλλακτική λύση: κληρονομικότητα
Item CD Video Σημείωση: «τετράγωνα» εικονίδια αναπαριστούν κλάσεις
14
Τα πεδία των κλάσεων Item CD Video
Οι υποκλάσεις [subclasses] κληρονομούν τα πεδία από τις υπερκλάσεις [superclasses]. Item title gotIt playing time comment CD Video artist director #tracks CD: title, artist, # tracks, playing time, got-it, comment Video: title, director, playing time, got-it, comment
15
Οι μέθοδοι των κλάσεων Item Video CD
Οι υποκλάσεις κληρονομούν τις μεθόδους από τις υπερκλάσεις. Item setComment() print() ... CD Video CD() Video() getArtist() getDirector() ... ... CD: CD(), getArtist(), setComment(), print() Video: Video(), getDirector(), setComment(), print()
16
Προεκτάσεις Item MusicCD Video VideoGame
17
Επιπλέον προεκτάσεις Item MusicCD Video Game VideoGame BoardGame
18
Ορολογία Κλάση βάσης [base class] Υπερκλάση [superclass]
Γονέας [parent] Παιδί [child] Παραγόμενη κλάση [derived class] Υποκλάση [subclass]
19
Πλεονεκτήματα της κληρονομικότητας
Αποφυγή επανάληψης κώδικα Επαναχρησιμοποίηση κώδικα Πιο εύκολη συντήρηση κώδικα Επεκτασιμότητα [extendability]
20
Κώδικας Java με χρήση κληρονομικότητας
class Item { ... } class MusicCD extends Item class Video extends Item
21
Επίδειξη [Project “dome”] Live demo: create class MusicCD
create class Video create/call objects implement/show method “print” (initially print only common fields - title,comment) write class Database implement/show method: Database::list create superclass “EntertainmentItem” rewrite MusicCD, Video, Database introduce: supertype / subtype
22
Διάγραμμα κλάσεων [Class diagram]
Database Item MusicCD Video
23
Διάγραμμα αντικειμένων [Object diagram]
Database
24
Πηγαίος κώδικας (χρήστης [client])
void list() { for (int i = 0; i < myItems.length; i++) myItems[i].print(); }
25
Πλεονεκτήματα της κληρονομικότητας
Αποφυγή επανάληψης κώδικα από τον χρήστη της κλάσης!
26
Παράκαμψη μεθόδου [Overriding, redefinition]
Το πρόβλημα: Η μέθοδος print είναι διαφορετική για αντικείμενα τύπου MusicCD και Video
27
Η μέθοδος “print” print print MusicCD Video Εκτύπωση:
CD: Triple J Hottest 100 (79 min) artist: sampler, 33 tracks double CD - great! Video print Εκτύπωση: Video: The Matrix (102 min) director: Fred Smith (not seen yet)
Παρόμοιες παρουσιάσεις
© 2024 SlidePlayer.gr Inc.
All rights reserved.