4040 Arv - Sak

Gör en ny konsoll-applikation.

Tänk dig en samling med musik på CD och filmer på DVD.

För en CD finns informationen titel och artist.

För en DVD finns informationen titel och regisör.

Klasserna CD, DVD och Sak

Båda har således titel gemensamt. Utnyttja arv för att skriva klasserna CD och DVD. Låt dessa klasser ärva från en klass Sak som innehåller det som är gemensamt för de båda klasserna.

Klassen Databas

Skapa en klass Databas. I den ska det finnas en objektvariabel som kan lagra en mängd CD:s och DVD:s.

Klassen ska ha en metod Add som lägger till en CD eller DVD i objektvariabeln. Metoden Add ska ta en parameter som kan vara en CD eller DVD.

I klassen Databas ska det finnas en metod som skriver ut databasen. Döp metoden till SkrivUt.

Klassen Program

Nedan följer en beskrivning av hur du skriver kod för att testa dina klasser.

Metoden Main

Översätt nedanstående test till kod.

  lokal variabel databas 
  Skapa ett objekt av klassen Databas och lägg i databas
  Lägg till några CD:s och DVD:s i databasen. 
  Skriv ut databasen.

Utskriften kan bli som nedan.

  CD, Namn: Violator
  Artist: Depeche Mode

  CD, Namn: Some great reward
  Artist: Depeche Mode

  DVD, Namn: Lord of the Rings: The Fellowship of the Ring
  Regissör: Peter Jackson

  DVD, Namn: Lord of the Rings: The Two Towers
  Regissör: Peter Jackson

  DVD, Namn: Lord of the Rings: The Return of the King
  Regissör: Peter Jackson

Visa för din lärare.

Övningen fortsätter

Lägg till en klass Bok. För boken finns information om titel och författare. Skriv om de klasser som behöver skrivas om samt ändra på testet i metoden Main så att några böcker också läggs till i databasen.

Testa att det fungerar.

Rita ett klassdiagram

Använd till exempel Agro UML.

Visa diagrammet för din lärare.

Reflektion

På hur många ställen behövde du ändra i koden? Vad skulle behöva ändras i koden om inte arv används? Diskutera med en kompis. Berätta för din lärare.