Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

Κληρονομικότητα [inheritance]

Παρόμοιες παρουσιάσεις


Παρουσίαση με θέμα: "Κληρονομικότητα [inheritance]"— Μεταγράφημα παρουσίασης:

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)


Κατέβασμα ppt "Κληρονομικότητα [inheritance]"

Παρόμοιες παρουσιάσεις


Διαφημίσεις Google